工具方法

一.日期/时间相关

1.格式化时间

$.prototype.getTime = (str, status) => {
    const formatTime = date => {
        const year = date.getFullYear()
        const month = date.getMonth() + 1
        const day = date.getDate()
        const hour = date.getHours()
        const minute = date.getMinutes()
        const second = date.getSeconds()
        return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
    }
复制代码
$.prototype.formatTamp = (num, status) => {
    let date = new Date(num);
    let year = date.getFullYear()
    let month = date.getMonth() + 1
    let day = date.getDate()

    let hour = date.getHours()
    let minute = date.getMinutes()
    let second = date.getSeconds()
    let time = ''
    switch (status) {
        case 1: time = year + '年' + month + '月' + day + '日'
            break;
        case 2: time = year + '年' + month + '月'
            break;
        case 3: time = year + '/' + month + '/' + day + ' ' + hour + ':' + minute + ':' + second
            break;
        case 4: time = year + '-' + month + '-' + day
            break;
    }

    return time
}
复制代码
formatDate(date){//将标准时间转为YYYY-MM-dd 格式
    var year = date.getFullYear(); 
    var month = date.getMonth() + 1; 
    var day = date.getDate(); 
    return year + "-" + formatTen(month) + "-" + formatTen(day);
}
function formatTen(num) { 
    return num > 9 ? (num + "") : ("0" + num); 
}
复制代码
formatDate(time){
    if(!time) return '';
    let date = new Date(time);
    return date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+'-'+date.getMinutes()+'-'+date.getSeconds();
},
复制代码

2.获取指定天数之前的日期

var getAgoDate = (date,num) => {
    let date = (new Date(date.replace(new RegExp("-","gm"),"/"))).getTime() - num * 24 * 60 * 60 * 1000;
    let newDate = new Date(date);
    return  newDate.getFullYear()+'-'+(newDate.getMonth() + 1)+'-'+newDate.getDate();
}
或者
function GetDay(day) {
  var time = new Date();
  time.setDate(time.getDate() + day);//获取Day天后的日期
  var y = time.getFullYear();
  var m = time.getMonth() + 1;//获取当前月份的日期
  var d = time.getDate();
  return y + "-" + m + "-" + d;
}
复制代码

3.比较两个日期大小

var compareDate = (dateStart,dateEnd) => {
    let startTime = new Date(dateStart);
    let endTime = new Date(dateEnd);
    let result = 0;
    if((endTime - startTime) > 0){
        result = 1;
    }else if((endTime - startTime) < 0){
        result = -1;
    }
    return result;
}
复制代码

二.cookie相关

Vue.prototype.setCookie = function(name,value){
    var Days = 30;
    var exp = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
Vue.prototype.getCookie = function(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
    return unescape(arr[2]);
    else
    return null;
}
Vue.prototype.delCookie = function(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null)
    document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
复制代码

3.ajax相关

owner.ajax = function (method, uri, options, callback) {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            return callback(xmlhttp.responseText);
        }
    }
    xmlhttp.open(method, uri, true);
    xmlhttp.send(options);
};
复制代码

三.地址栏参数

1.获取地址栏参数

var getQueryStringValue = (name)=>{
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
    var r = window.location.href.substr(window.location.href.indexOf("?")+1).match(reg); 
    if (r != null) return unescape(r[2]); return null; 
}
复制代码

2.获取地址栏的hash值

window.location.hash;
window.location.hash.substr(1);
复制代码

四.数组

1.数组去重

 uniqueArray (arr) {
    var res = [arr[0]];
    for(var i = 1; i < arr.length; i++){
        var repeat = false;
        for(var j = 0; j < res.length; j++){
            if(arr[i] === res[j]){
                repeat = true;
                break;
            }
        }
        if(!repeat){
            res.push(arr[i]);
        }
    }
    return res;
}
复制代码

2.数组排序

var sortArray = (arr, type) => {
    if(arr != '' ){
        arr.sort(function (a, b) {
            if (a[type] > b[type]) {
              return 1;
            } else if (a[type] < b[type]) {
              return -1
            } else {
              return 0;
            }
          });
    }else{
        arr = [{dataGroupName:'0',typeRate:0}]
    }
    
    return arr
}
复制代码
arr.sort((a,b)=> a-b);//从小到大
arr.sort((a,b)=> b-a);//从大到小
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值