Moment.js
解析、校验、操作、显示日期和时间
在JavaScript中解析、校验、操作和显示日期与时间,Moment.js以moment().format()链式调用为核心,覆盖格式化、相对时间、日历时间、多语言环境等高频场景,v2.30中文网由Nodejs.cn旗下运营。
| 收费 | 免费开源 |
|---|---|
| 平台 | 浏览器/Node.js |
| 中文 | 官方中文文档 |
| 用途 | JavaScript中解析、校验、操作、显示日期和时间 |
Moment.js提供从字符串、对象、Unix时间戳等来源解析日期,并支持加法、减法、时间开端/终端等操作。显示层包含format()自定义格式(如'MMMM Do YYYY')、fromNow()相对时间(如'3 days ago')、calendar()日历时间(如'Last Tuesday at 2:00 AM')。
官方提供多种安装方式,覆盖主流包管理器和模块系统。核心库大小18.4KB(min),带全部语言环境的版本74.6KB(min)。
截至2020年9月,Moment每周下载量超过1200万次,但团队已明确将其定位为“处于维护模式的遗留项目”。设计上坚持可变API(如add()会改变原对象),不计划推出v3或实现不可变。
中文网提供完整的文档和指南,覆盖解析、操作、显示、国际化、时长、插件等模块。指南区域专门解释可变性、日期算术与时序算术差异、时区与偏移量等易混淆概念。
Q1:Moment.js的对象可变性是什么意思?如何避免?
A1:Moment对象是可变的,即调用add()、subtract()或set()会直接修改原对象。例如var a = moment('2016-01-01'); a.add(1, 'week'); 后a变为2016-01-08。官方建议在执行日期算术前使用clone()复制:var b = a.clone().add(1, 'week');
Q2:Moment.js是否还在积极开发?新项目应该用吗?
A2:Moment团队已明确将其定位为“处于维护模式的遗留项目”,不会添加新功能、不会改为不可变、不会解决tree shaking或包大小问题。截至2020年9月每周下载量仍超1200万次,但团队推荐新项目使用Luxon等现代库,并支持Temporal提案。
Q3:Moment.js中文网支持哪些语言环境?如何切换?
A3:中文网文档显示支持超过100种语言环境,包括中文(中国、香港、澳门、台湾)、阿拉伯语(多地区变体)、克林贡语等。通过moment.locale()全局设置,或局部使用moment().format('LT')等格式获取当前语言环境下的时间字符串。
更多同类工具与网站,可在前端库分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论