js 工具类 常用方法

js开头: 

/**
 * JavaScript 基础工具类,存放公共函数
 */
var base_utils = base_utils || {};

 

时间类型的:

/**
 * 获取几天前的时间
 * @param n 天数
 * @returns yyyy-MM-dd
 */
base_utils.getBeforeDate = function(n){
    var date = new Date();
    var year,month,day;
    date.setDate(date.getDate()-parseInt(n));
    year = date.getFullYear();
    month = date.getMonth()+1;
    day = date.getDate();
    str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
    return str;
}


/**
 * 获取几天前的时间 2
 * @param n 天数
 * @param dateStr 指定时间如: '2019-01-01'
 * @returns yyyy-MM-dd
 */
base_utils.getBeforeDateForDate = function(n,dateStr){
    var date = new Date(dateStr);
    var year,month,day;
    date.setDate(date.getDate()-parseInt(n));
    year = date.getFullYear();
    month = date.getMonth()+1;
    day = date.getDate();
    str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
    return str;
}



/**
 * 时间戳 转 日期
 * @param n 时间戳数字
 * @returns yyyy-MM-dd
 */
base_utils.timestampToDate = function(n){
    var timestamp = 0;
    if((n+'').length == 10){
        // Unix时间戳处理
        timestamp = parseInt(n)*1000;
    }else{
        timestamp = parseInt(n);
    }

    var date = new Date(timestamp);
    var year,month,day;
    year = date.getFullYear();
    month = date.getMonth()+1;
    day = date.getDate();
    str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
    return str;
}


/**
 * 时间戳 转 时期时间
 * @param n 时间戳数字
 * @returns yyyy-MM-dd HH:mm:ss
 */
base_utils.timestampToDateTime = function(n){
    var timestamp = 0;
    if((n+'').length == 10){
        // Unix时间戳处理
        timestamp = parseInt(n)*1000;
    }else{
        timestamp = parseInt(n);
    }

    var date = new Date(timestamp);
    var year,month,day,hour,minute,second;
    year = date.getFullYear();
    month = (date.getMonth()+1) < 10 ? ('0'+(date.getMonth()+1)) : (date.getMonth()+1);
    day = date.getDate() < 10 ? ('0'+date.getDate()) : date.getDate();
    hour = date.getHours() < 10 ? ('0'+date.getHours()) : date.getHours();
    minute = date.getMinutes() < 10 ? ('0'+date.getMinutes()) : date.getMinutes();
    second = date.getSeconds() < 10 ? ('0'+date.getSeconds()) : date.getSeconds();
    str = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
    return str;
}


/**
 * 返回指定format的string
 * 例如:format eg:'yyyy-MM-dd HH:mm:ss'
 **/
Date.prototype.format = function(format) {
    var o = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "H+": this.getHours(), //24小时
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    }
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}

 

字符串、数组、对象 判断是否为空:

/**
 * 判断字符是否为空
 * @param str 字符串
 * @returns {boolean} true:为空
 */
base_utils.isStrEmpty = function(str){
    if(typeof str == "undefined" || str == null || str.trim() == ""){
        return true;
    }else{
        return false;
    }
}


/**
 * 判断数组是否为空
 * @param array 数组[]
 * @returns {boolean} true:为空 error:错误
 */
base_utils.isArrayEmpty = function(array){
    let flag = Object.prototype.toString.call(array) === "[object Array]";
    if(!flag){
        console.error('参数错误,请输入 数组类型');
        return 'error';
    }
    if (typeof array == undefined || array.length == 0) {
        return true;
    }else{
        return false;
    }
}


/**
 * 判断对象是否为空
 * @param obj 对象{}
 * @returns {boolean} true:为空 error:错误
 */
base_utils.isObjectEmpty = function(obj){
    let flag = Object.prototype.toString.call(obj) === "[object Object]";
    if(!flag){
        console.error('参数错误,请输入 对象类型');
        return 'error';
    }
    return JSON.stringify(obj) == "{}";
}

 

字符串的:

/**
 * String字符串占位符处理
 * js实现占位符 比如:"天气{0}".format("热");
 * @returns {String} 返回:天气热
 */
String.prototype.format = function() {
    if(arguments.length == 0) return this;
    var param = arguments[0];
    var s = this;
    if(typeof(param) == 'object') {
        for(var key in param)
            s = s.replace(new RegExp("\\{" + key + "\\}", "g"), param[key]);
        return s;
    } else {
        for(var i = 0; i < arguments.length; i++)
            s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
        return s;
    }
}

 

深度copy对象的:

/**
 * js对象深度copy,复杂情况也不会发生引用
 * @param oldObj
 * @returns 新对象
 */
base_utils.objDeepCopy = function (oldObj) {
    let newObj = oldObj instanceof Array ? [] : {};
    for (let item in oldObj) {
        newObj[item] = typeof oldObj[item] === 'object' ? base_utils.objDeepCopy(oldObj[item]) : oldObj[item];
    }
    return newObj;
}

 

目前先整理这些,后续有补充可以再加上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值