如何在Moment.js中注册自定义日期格式?例如L-ForServer对应YYYY-MM-DD
在Moment.js中注册自定义日期格式的实现方案
当然可以实现!Moment.js提供了注册自定义日期格式别名的能力,刚好能满足你想用moment(someDate).format('L-ForServer')输出YYYY-MM-DD格式的需求,具体方法如下:
方法一:通过Locale扩展注册格式别名
这是最贴合你需求的方式,把自定义格式注册成和内置L、LL一样的别名:
- 注册自定义格式
在项目的入口文件(比如全局初始化的地方)添加以下代码,给当前使用的语言环境添加自定义格式:
// 以英文环境为例,若用中文环境替换成'zh-cn'即可 moment.updateLocale('en', { longDateFormat: { 'L-ForServer': 'YYYY-MM-DD' } });
- 调用自定义格式
注册完成后,就可以直接用你想要的方式调用了:
const someDate = new Date(); // 输出YYYY-MM-DD格式的日期字符串 const serverFriendlyDate = moment(someDate).format('L-ForServer');
方法二:封装自定义实例方法(备选方案)
如果你不想修改Locale配置,也可以给Moment实例添加一个专属方法,同样能快速输出目标格式:
// 给Moment原型添加自定义方法 moment.fn.formatForServer = function() { return this.format('YYYY-MM-DD'); }; // 使用方式 const someDate = new Date(); const serverFriendlyDate = moment(someDate).formatForServer();
两种方法都能达到你的需求,第一种更贴合你想要的format('自定义标识')的调用习惯,第二种则更灵活,适合只需要特定格式输出的场景。
内容的提问来源于stack exchange,提问作者dragonfly
相关产品推荐
相关产品推荐

