moment js 有时在德语语言环境中有 moment.monthsShort() 和句点(点)
moment js sometimes has moment.monthsShort() with period (dot) in german locale
我写了一个 JIRA 插件,它使用 moment js 来格式化和解析日期。
在某些安装中,当 moment.js 的短名称带有尾随句点时,我会遇到奇怪的行为。
moment.js 从哪里获取短名称?如何实现始终获得相同的短名称?
目前,像 3/Okt/16 这样的日期在我的 Ubuntu 实例上解析失败,但在 Mac 上运行。 3/Okt./16 似乎对两者都有效。
由于字段是通过 Java SimpleDateFormat 填充的,我没有机会更改传入格式。
从同一浏览器调用的示例:
JIRA Server hosted on MacOS:
moment.monthsShort()
["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]
JIRA Server hosted on Ubuntu:
moment.monthsShort()
["Jan.", "Febr.", "Mrz.", "Apr.", "Mai", "Jun.", "Jul.", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."]
基本上,我认为最好的办法是编写一些代码来检查时刻是否为 2.13 或更高版本,如果是,则用旧的语言环境数据覆盖。下面的代码应该可以解决问题:
if(moment.version.split('.')[1] > 12)
{
moment.updateLocale('de',{
monthsShort:'Jan_Febr_Mrz_Apr_Mai_Jun_Jul_Aug_Sept_Okt_Nov_Dez'.split('_')
});
}
moment('3/Okt/16','D/MMM/YY').format() //"2016-10-03T00:00:00-07:00"
我写了一个 JIRA 插件,它使用 moment js 来格式化和解析日期。 在某些安装中,当 moment.js 的短名称带有尾随句点时,我会遇到奇怪的行为。
moment.js 从哪里获取短名称?如何实现始终获得相同的短名称?
目前,像 3/Okt/16 这样的日期在我的 Ubuntu 实例上解析失败,但在 Mac 上运行。 3/Okt./16 似乎对两者都有效。
由于字段是通过 Java SimpleDateFormat 填充的,我没有机会更改传入格式。
从同一浏览器调用的示例:
JIRA Server hosted on MacOS:
moment.monthsShort()
["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]
JIRA Server hosted on Ubuntu:
moment.monthsShort()
["Jan.", "Febr.", "Mrz.", "Apr.", "Mai", "Jun.", "Jul.", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."]
基本上,我认为最好的办法是编写一些代码来检查时刻是否为 2.13 或更高版本,如果是,则用旧的语言环境数据覆盖。下面的代码应该可以解决问题:
if(moment.version.split('.')[1] > 12)
{
moment.updateLocale('de',{
monthsShort:'Jan_Febr_Mrz_Apr_Mai_Jun_Jul_Aug_Sept_Okt_Nov_Dez'.split('_')
});
}
moment('3/Okt/16','D/MMM/YY').format() //"2016-10-03T00:00:00-07:00"