时间戳与特定格式时间转换

27 篇文章 1 订阅

1 获取时间戳

1.获取系统当前时间的时间戳(单位:毫秒)

方法1:
var timestamp1= +new Date();
方法2:
var timestamp2 = new Date().valueOf();
方法3:
var timestamp3 = new Date().getTime();

2.获取特定时间的时间戳
var timestamp = new Date(‘2021-08-22 20:32:08’).getTime();

2 将时间戳转为特定格式的日期

如:YYYY-MM-DD HH:mm:ss

ruleresult
YYYY:MM:DD2021年08月22日
YY年MM月DD日 H时m分s秒21年08月22日 20时45分17秒或 21年08月22日 20时46分3秒
YYYY-MM-DD HH:mm:ss2021-08-22 20:46:03

即:
YYYY 2021,YY 21
MM 08 或12
M 8或12
其他与MM和M规则相同
实现代码:

var now = +new Date();
console.log(now); //得到当前时间戳

console.log('无规则-----' + moment(now));
console.log('YY年MM月DD日 H时m分s秒-----' + moment(now, 'YY年MM月DD日 H时m分s秒'));
console.log('YYYY-MM-DD HH:mm:ss-----' + moment(now, 'YYYY-MM-DD HH:mm:ss'));

function add0(n) { return n < 10 ? '0' + n : n }

function moment(timestamp, rule) {
    var time = new Date(timestamp);//将时间戳转为日期

    var y = time.getFullYear().toString();
    var mth = time.getMonth() + 1;
    var d = time.getDate();

    var h = time.getHours(); //获取时
    var m = time.getMinutes(); //获取分
    var s = time.getSeconds(); //获取秒

    let result = '';
    if (typeof(rule) === 'undefined') { //未传入规则时的规则:YYYY:MM:DD
        let M = mth;
        M = add0(M)
        let D = d
        D = add0(D)
        result = y + "年" + M + "月" + D + "日"
    } else { //传入规则
        //规则1:YY年MM月DD日 H时m分s秒
        //规则2:YYYY-MM-DD HH:mm:ss
        result = rule;
        if (!/Y{4}/.test(rule)) {
            result = result.replace(/Y{2}/, y.slice(2, 4))
        } else {
            result = result.replace(/Y{4}/, y)
        }

        if (!/M{2}/.test(rule)) { //1个M
            result = result.replace(/M/, mth)
        } else { //2个M
            result = result.replace(/M{2}/, add0(mth))
        }

        if (!/D{2}/.test(rule)) { //1个D
            result = result.replace(/D/, d)
        } else { //2个D
            result = result.replace(/D{2}/, add0(d))
        }

        if (!/H{2}/.test(rule)) {
            result = result.replace(/H/, h)
        } else {
            result = result.replace(/H{2}/, add0(h))
        }

        if (!/m{2}/.test(rule)) {
            result = result.replace(/m/, m)
        } else {
            result = result.replace(/m{2}/, add0(m))
        }

        if (!/s{2}/.test(rule)) { //一个s
            result = result.replace(/s/, s)
        } else {
            result = result.replace(/s{2}/, add0(s))
        }

    }
    return result
}

在这里插入图片描述

小结:
str.replace(reg,s)的使用:
var str = “Visit Microsoft!”
console.log(str.replace(/Microsoft/, “W3School”));
//Visit W3School!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值