JavaScript 时间格式化

🌙
手机阅读
本文目录结构

需求

把服务器获取到的时间戳(秒为单位),转化为目标的格式

比如

  • 2020年06月19日00:59:07
  • 2020【年】06【月】19【日】 00:59:07
  • 2020-06-19 00:59:07
  • 2020/06/19 00:59:07
  • 20200619005907

实现方法

let Utils = {
    formatDate: function (timeStamp, format) {
        let date = new Date((timeStamp || 0) * 1000);
        let map = {
            'y': date.getFullYear(),
            'M': date.getMonth() + 1,//month
            'd': date.getDate(),//date
            'H': date.getHours(),//hours
            'm': date.getMinutes(),//minutes
            's': date.getSeconds() //seconds
        };
        for (let i in map) {
            if (map.hasOwnProperty(i)) {
                if (map[i] < 10) {
                    map[i] = '0' + map[i];
                }
            }
        }
        format = format || 'yyyy-MM-dd HH:mm:ss';
        let reg = new RegExp('y+|M+|d+|H+|m+|s+', 'g');
        let regY = new RegExp('y');
        format = format.replace(reg, function (v) {
            let old = v;
            if (regY.test(v)) {
                let y = "" + map['y'];
                let len = 4 - v.length;
                old = y.substr(len);
            } else {
                let key = v.substr(0, 1);
                old = map[key];
            }
            return old;
        });
        return format;
    }
};
// 模拟一个服务器拿到的时间戳(一般是秒为单位的时间戳)
let serverTime = parseInt(new Date().getTime() / 1000);
console.log(Utils.formatDate(serverTime, 'yyyy年MM月dd日HH:mm:ss'))
console.log(Utils.formatDate(serverTime, 'yyyy【年】MM【月】dd【日】 HH:mm:ss'))
console.log(Utils.formatDate(serverTime, 'yyyy-MM-dd HH:mm:ss'))
console.log(Utils.formatDate(serverTime, 'yyyy/MM/dd HH:mm:ss'))
console.log(Utils.formatDate(serverTime, 'yyyyMMddHHmmss'))

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>