关于服务器返回时间的前端格式化

问题描述:服务器一般不会返回2020-9-9 11:11这种时间格式,一般都是返回Unix时间元年为起点的相应时间戳,一串数字1535694719,那么前端如何将时间戳转成时间格式字符串呢?

1.将时间戳转成Date对象
//时间戳是秒,Date要求是毫秒,所以*1000
const date = new Date(1535694719*1000)
2.将date进行格式化,转成对应字符串
// 月从0开始
date.getYear() + date.getMonth() + 1

由于这种转换太常见,所以很多语言都有封装

//如java
fmt.format(date,'yyyy-MM-dd')

而js是没有的,下面是一个封装实现

export function dateFormat(fmt, date) {
    let ret;
    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 (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值