首页 > 解决方案 > 使用语言环境解析时日期无效

问题描述

我需要用momentjs解析“it”语言环境中的日期,我正在这样做

import moment from 'moment';
import 'moment/locale/it';

moment.locale("it");
let d = "20/12/2018"; // 20 dec 2018
let mm = moment(d);
console.log(mm.format("DD MM YYYY"));

我得到的是“无效日期”,我不明白为什么。你能帮助我吗?

使用“en”语言环境(日期写为 2018 年 12 月 20 日)一切正常

标签: javascriptdatemomentjs

解决方案


下面的代码片段将完成你想要的。它需要给定本地的时刻日期格式,并在创建时刻时将其传递给构造函数。

话虽如此,上面的评论提出了很多好的观点,这不是处理日期的可靠方法。

例如,如果意大利的某个人以 enMM/DD/YYYY格式输入日期字符串,则会中断

let localeFormat = moment.localeData('it').longDateFormat('L');
console.log(localeFormat) // DD/MM/YYYY

let d = "20/12/2018"; // 20 dec 2018
let mm = moment(d, localeFormat);
console.log(mm.format("DD MM YYYY"));

推荐阅读