js时间戳转指定的时间格式

  时间戳转指定的时间格式,时间格式可以自己随意定义。
  以前写的时候,看了好几个时间格式的函数,后来慢慢处理优化搞出来的,自己也是一直都在用的方法

/** 
 * @description 时间戳转化为年 月 日 时 分 秒 
 * @method formatTime(format,num)
 * @param {string} [format='YYYY-mm-dd HH:MM:SS'] 时间格式,不填时默认使用'YYYY-mm-dd HH:MM:SS'格式,更改只需替换中间连接符号就行'YYYY年mm月dd日 HH时MM分SS秒'
 * @param {number} [num = new Date().getTime()] 时间戳,默认使用当前时间戳, new Date().getTime(); 获取当前时间戳(毫秒)
 * @example 
 *  var sjc = 1472048779952; //js一般获取的时间戳是13位,PHP一般是10位
    formatTime('YYYY-mm-dd HH:MM:SS',sjc)
 */
const formatTime = (format = "", num = new Date().getTime()) => {
    format = format || "YYYY-mm-dd HH:MM:SS";   //第一个参数不填时,使用默认格式
    let ret, date, renum;
    // 处理时间戳,js一般获取的时间戳是13位,PHP一般是10位,根据实际情况做判断处理
    if (num.toString().length == 10) {
        date = new Date(parseInt(num) * 1000);
    } else {
        date = new Date(parseInt(num));
    }
    const opt = {
        "Y": date.getFullYear().toString(), // 年
        "m": (date.getMonth() + 1).toString(), // 月
        "d": date.getDate().toString(), // 日
        "H": date.getHours().toString(), // 时
        "M": date.getMinutes().toString(), // 分
        "S": date.getSeconds().toString() // 秒
        // 目前用的是这六种符号,有其他格式化字符需求可以继续添加,值必须转化成字符串
    };
    for (var k in opt) {
        ret = new RegExp("(" + k + "+)").exec(format);
        if (ret) {
            renum = (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")) //根据复数前面是否补零,如“mm”补零,单“m”前面不补零
            format = format.replace(ret[1], renum)  //替换
        };
    };
    return format;
};

用法

// var nowTime = new Date().getTime();
var nowTime = '1638927630';

// 什么都不传,获取当前时间
console.log(formatTime());  // 2021-12-08 09:38:11

// 中间连接符可以随便定义,别使用Y、m、d、H、M、S这几个已使用的字母就行
console.log(formatTime("YYYY年mm月dd日 HH时MM分SS秒", nowTime));  // 2021年12月08日 09时40分30秒
console.log(formatTime("YY/m/d HH时MM分SS秒", nowTime));  // 2021/12/8 09时40分30秒
console.log(formatTime("H:MM:SS", nowTime));  // 9:40:30

console.log(formatTime("H小时M分钟S秒啊!", nowTime));  // 9小时40分钟30秒啊!
console.log(formatTime("HH时MM分SS秒-YYYY年mm月dd日", nowTime));  // 09时40分30秒-2021年12月08日
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值