javascript日常小记

1滚动条始终保持在底部

obj.scrollTop = obj.scrollHeight;

2时间转换一位转两位

function toTwo(time){
  if(time<10){
    return '0'+time;
  }else{
    return ''+time;
  }
}

3字符串转十六进制

function stringToHex(str){
  var val="";
 for(var i = 0; i < str.length; i++){
    val += (str.charCodeAt(i).toString(16)+' ');
 }
 return val;
}
function stringToHex(str){
  var val="";
 for(var i = 0; i < str.length; i++){
    var hex = str.charCodeAt(i).toString(16);
    var lng = hex.length;
    if(lng==1){
      hex = '0'+hex;
    }
    val += hex+' ';
 }
 return val;
}


 

4十六进制转字符串

function hexToString(str){
  var lng = str.length;
  // 如果最后一位是空格就删除
  if(str.substring(lng-1,lng)==" "){
    str = str.substring(0,lng-1);
  }
 var val="";
 var arr = str.split(" ");
 for(var i = 0; i < arr.length; i++){
   val += String.fromCharCode(parseInt(arr[i],16));
 }
 return val;
}

function hexToString(str){ // 移除头尾空白 str = str.trim(); var val=""; var sval=""; var arr = str.split(''); // 循环去除空格 for(var i = 0; i < arr.length; i++){ if(arr[i]!=' '){ sval += arr[i] } } var lng = sval.length; if(lng%2==1){ sval = sval.substring(0,lng-1)+'0'+sval.substring(lng-1,lng); } for(var j=0;j<sval.length;j+=2){ val += String.fromCharCode(parseInt(sval.substring(j,j+2),16)); } return val; }

5生成n位随机字母

function getRand(){
  var arr = [];
  var rannum = Math.ceil(Math.random() * 10); //生成一个0到10的数字
  for(var i=0;i<rannum;i++){
    var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字
    arr.push(String.fromCharCode(97+ranNum));
  }
  return arr.join('');
}

6时间戳转换日期

var UnixToDate = function(unixTime, isFull) {
 
    var time = new Date(unixTime);
    var ymdhis = "";
 
    function toTwo(n){
      if(n<10){
        return '0'+n;
      }else{
        return ''+n;
      }
    };
 
    ymdhis += time.getFullYear() + "/";
    ymdhis += (toTwo(time.getMonth()+1)) + "/";
    ymdhis += toTwo(time.getDate());
    if (isFull === true)
    {
        ymdhis += "  " + toTwo(time.getHours()) + ":";
        ymdhis += toTwo(time.getMinutes()) + ":";
        ymdhis += toTwo(time.getSeconds());
    }
    return ymdhis;
}
  1. unixTime:参数类型(int)   时间戳(毫秒)               
  2. isFull:参数类型(bool)   true返回完整时间(Y-m-d H:i:s),false返回日期(Y-m-d)

7获取两个日期的天数差

function GetDateDiff(startDate,endDate){
    var startTime = new Date(Date.parse(startDate.replace(/-/g,"/"))).getTime();
    var endTime = new Date(Date.parse(endDate.replace(/-/g,"/"))).getTime();
    var dates = Math.abs((startTime - endTime))/(1000*60*60*24);
    return dates;
}

8根据年月获得当月天数

        function getDaysInMonth(year,month){
          month = parseInt(month,10); //parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。
          var temp = new Date(year,month,0);
          return temp.getDate();
        }

9遍历开始和结束时间的具体天数

        function getDateList(startDate,endDate){
            var startTimeDate = new Date(Date.parse(startDate.replace(/-/g,"/")));
            var startTime = startTimeDate.getTime();
            var endTimeDate = new Date(Date.parse(endDate.replace(/-/g,"/")));
            var endTime = endTimeDate.getTime();
            var dateList = [];

            for (var i = startTime; i <= endTime; i=i+1000*60*60*24) {
                var date = new Date(i);
                dateList.push(date.getFullYear()+'年'+(date.getMonth()+1)+'月'+date.getDate()+'日');
            }
            return dateList;
        }

10获取地址栏参数

function GetQueryString(name){
  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  // search得到的是url中?部分,substr()返回一个从指定位置开始的指定长度的子字符串,这里设置为1,是为了把url中的?号去掉
  var r = window.location.search.substr(1).match(reg);
  if(r!=null){
    return unescape(r[2]);
  }
    return null;
}

 11自己封装的cookie方法

// 设置cookie
function setCookie(name,value,iDay){
  var oDate=new Date();
  oDate.setDate(oDate.getDate()+iDay);
  // 加密
  var str = '';
  for (var i = 0; i < value.length; i++) {
    str += String.fromCharCode(value.charCodeAt(i)-500);
  }

  document.cookie=name+'='+str+';expires='+oDate;
};

// 获取cookie
function getCookie(name){
  var arr1=document.cookie.split('; ');
  for (var i = 0; i < arr1.length; i++) {
    var arr2=arr1[i].split('=');
    if(arr2[0]==name)
    {
      // 解密
      var str = '';
      for (var i = 0; i < arr2[1].length; i++) {
        str += String.fromCharCode(arr2[1].charCodeAt(i)+500);
      }
      return str;
    }
  }
  return '';//如果没有找到返回空
};

// 删除cookie
function removeCookie(name){
  setCookie(name,1,-1);
};

12全选与全不选

          function jQueryCheckAll() {
            var checkAll = $('#s-all');
            var items = $('#list :checkbox');

            checkAll.click(function () {
              if ($(this).prop('checked')) {
                items.each(function () {
                  $(this).prop('checked', true);
                })
              }
              else {
                items.each(function () {
                  $(this).prop('checked', false);
                })
              }
              items.click(function () {
                checkAll.prop("checked", items.length == $('#list :checkbox:checked').length ? true : false);
              });
            })
          }

13时间在一个小时内换成多少分钟前

      function getDateDiff(dateTimeStamp){
        var UnixToDate = function(unixTime, isFull) {
          var time = new Date(unixTime);
          var ymdhis = "";
          function toTwo(n){
            if(n<10){
              return '0'+n;
            }else{
              return ''+n;
            }
          };
          ymdhis += time.getFullYear() + "/";
          ymdhis += (toTwo(time.getMonth()+1)) + "/";
          ymdhis += toTwo(time.getDate());
          if (isFull === true){
            ymdhis += "  " + toTwo(time.getHours()) + ":";
            ymdhis += toTwo(time.getMinutes()) + ":";
            ymdhis += toTwo(time.getSeconds());
          }
          return ymdhis;
        }
        var minute = 1000 * 60;
        var now = new Date().getTime();
        var diffValue = now - dateTimeStamp;
        if(diffValue < 0){
          return;
        }
        var minC =diffValue/minute;
        console.log(minC);
        var result
        if(minC<1){
          result = "刚刚";
        }else if(minC>=1&&minC<=59){
          result = ""+ parseInt(minC) +"分钟前";
        }else{
          result = UnixToDate(dateTimeStamp,true)
        }
        return result;
      }

14在数组对象内根据key值找对应的value

function changeValue(val,value,label,arr){
  var obj = {};
  obj = arr.find(function(item){
    return item[value] === val;
  });
  return obj[label];
}

 15字符串转16进制

      function stringToHex(str){
        var val="";
       for(var i = 0; i < str.length; i++){
          val += str.charCodeAt(i).toString(16);
       }
       return val;
      }

16 16进制转字符串

  //  // 十六进制转字符串
  function hexToString(str){
    // 移除头尾空白
    str = str.trim();
    var val="";
    var sval="";
    var arr = str.split('');

    console.log(arr)
    for(var i = 0; i < arr.length; i++){
      if(arr[i]!=' '){
        sval += arr[i]
      }
    }

    for(var j=0;j<sval.length;j+=2){
      val += String.fromCharCode(parseInt(sval.substring(j,j+2),16));
    }
    return val;
  }
  str = ' 6b6b ';
  console.log(hexToString(str))

 16根据当前月份计算最近的月份

    function getLatelyMonth(n){
      // var monthOfYear = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
      // 或者中文,根据你的需求自己定
      var monthOfYear = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
      var date = new Date();
      // 月份数组
      var nearThree = [];
      // 当月
      var month = date.getMonth();
      // 现将本月推入数组
      nearThree.push(monthOfYear[month]);
      for (var i = 1; i < n; i++) {
        date.setMonth(month - i);
        nearThree.unshift(monthOfYear[date.getMonth()]);
      }
      return nearThree;
    }

 17根据月份推算相对应的日期

      var arrM1 = ["十一月", "十二月", "一月", "二月", "三月", "四月"];
      var arrM2 = ["一月", "二月", "三月", "四月"];
      var arrM3 = ["二月", "三月", "四月"];
      console.log(arrM1.indexOf('一月'));
      console.log(arrM2.indexOf('一月'));
      console.log(arrM3.indexOf('一月'));
      function startoend(arr){
        function turnToArr(str){
          switch (str) {
            case '一月':
              str = 1;
              return str;
              break;
            case '二月':
              str = 2;
              return str;
              break;
            case '三月':
              str = 3;
              return str;
              break;
            case '四月':
              str = 4;
              return str;
              break;
            case '五月':
              str = 5;
              return str;
              break;
            case '六月':
              str = 6;
              return str;
              break;
            case '七月':
              str = 7;
              return str;
              break;
            case '八月':
              str = 8;
              return str;
              break;
            case '九月':
              str = 9;
              return str;
              break;
            case '十月':
              str = 10;
              return str;
              break;
            case '十一月':
              str = 11;
              return str;
              break;
            default:
              str = 12;
              return str;
          }
        }

        var numMonth = [];
        for (var i = 0; i < arr.length; i++) {
          numMonth[i] = turnToArr(arr[i])
        }
        console.log(numMonth);
        var index = arr.indexOf('一月');
        var date=new Date;
        var year=date.getFullYear();
        if(index>0){
          var date = year-1+'.'+numMonth[0]+'—'+year+'.'+numMonth[arr.length-1]
          return date
        }else{
          var date = year+'.'+numMonth[0]+'—'+year+'.'+numMonth[arr.length-1]
          return date
        }
      }
      console.log(startoend(arrM1));
      console.log(startoend(arrM2));
      console.log(startoend(arrM3));

 18.字符串转Unicode,Unicode转字符

          function toUnicode(str){
            var unicodearr = []
            for (var i = 0; i < str.length; i++) {
              unicodearr.push(str.charCodeAt(i))
            }
            return unicodearr.join(',')
          }

function toStr(str) {
  var arr = str.split(',')
  var res = ''
  for (var i = 0; i < arr.length; i++) {
    res+=String.fromCharCode(arr[i])
  }
  return res
}

 

 19生成范围的随机数

        // min:最小值 max:最大值 num:生成几个 dec保留几位小数
        function randomNum(min,max,num,dec) {
            let randArr = []
            for (let i = 0; i < num; i++) {
                let randNum = Number((Math.random() * (max-min) + min).toFixed(dec))
                randArr.push(randNum)
            }
            return randArr
        }
        console.log(randomNum(20,30,3,2)); // [20.92, 22.13, 23.21]
原文地址:https://www.cnblogs.com/zwhbk/p/6482510.html