JavaScript日期时间格式化实现与Moment.js库应用

作者:橙子时间:2026-10-24 13:41:37浏览:271

本文介绍JavaScript中日期时间格式化的两种主要方式:原生JS自定义函数与Moment.js库。详细演示了如何将日期转换为指定格式,并深入讲解Moment.js在获取当前时间、星期、Unix时间戳、相对时间计算及复杂格式化中的应用,附带常用格式代码对照表供开发者参考。

JavaScript日期时间格式化

实现日期时间向指定格式的转换,例如将日期时间格式化为“YYYY-mm-dd HH:MM”形式,输出结果如“2019-06-06 19:45”。


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;
}

具体使用方法如下:


let date = new Date()
dateFormat("YYYY-mm-dd HH:MM", date)
>>> 2019-06-06 19:45`

若项目中涉及大量日期时间处理需求,建议采用moment.js这一日期处理库,其操作简便且高效。

使用Moment.js进行日期时间格式化

Moment.js是一款轻量级JavaScript时间处理库,旨在简化日常开发中的时间操作,提升开发效率。在常规开发场景中,时间处理通常涵盖获取时间、设置时间、格式化时间以及比较时间等核心功能。

日期格式化示例

获取当前时间的方法:


moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09 

判断今天是星期几的代码:


moment().format('d'); //3 

将当前时间转换为Unix时间戳的方式:


moment().format('X'); 

相对时间处理

例如,日期“20120901”相对于当前时间显示为“2年前”。


moment("20120901", "YYYYMMDD").fromNow(); //2 years ago 

计算7天后的日期:


moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日 

计算9小时后的具体时间:


moment().add('hours',9).format('HH:mm:ss'); 

Moment.js提供了详尽的文档支持,利用该库可构建如日历应用等复杂的日期时间系统。在日常开发中,格式化时间是最常用的功能之一。下表整理了常用格式代码及其说明,供开发者查阅:

格式代码 说明 返回值例子
M 数字表示的月份,没有前导零 1到12
MM 数字表示的月份,有前导零 01到12
MMM 三个字母缩写表示的月份 Jan到Dec
MMMM 月份,完整的文本格式 January到December
Q 季度 1到4
D 月份中的第几天,没有前导零 1到31
DD 月份中的第几天,有前导零 01到31
d 星期中的第几天,数字表示 0到6,0表示周日,6表示周六
ddd 三个字母表示星期中的第几天 Sun到Sat
dddd 星期几,完整的星期文本 从Sunday到Saturday
w 年份中的第几周 如42:表示第42周
YYYY 四位数字完整表示的年份 如:2014 或 2000
YY 两位数字表示的年份 如:14 或 98
A 大写的AM PM AM PM
a 小写的am pm am pm
HH 小时,24小时制,有前导零 00到23
H 小时,24小时制,无前导零 0到23
hh 小时,12小时制,有前导零 00到12
h 小时,12小时制,无前导零 0到12
m 没有前导零的分钟数 0到59
mm 有前导零的分钟数 00到59
s 没有前导零的秒数 1到59
ss 有前导零的描述 01到59
X Unix时间戳 1411572969

如需了解更多关于Moment.js的信息,可访问其官方网站:http://momentjs.com/。

总结

本文介绍了JavaScript日期时间格式化的相关内容,更多相关技术文章请查阅本站历史文章或浏览后续内容,感谢大家的支持。

作者最新文章