【发布时间】:2014-08-11 14:58:52
【问题描述】:
我正在尝试使用 moment-with-locales.min.js 将天数添加(或减去)特定于语言环境的日期。我所拥有的是包含格式化为特定语言环境的日期的文本框。当用户更新一个时,它会重置所有其他的并添加指定的天数。但是,我似乎无法让 moment.js 根据 en-US 以外的任何内容来操纵日期,因此日期已经过时了。
我用这个jsFiddle尝试了几种变体
var d = new moment('11/08/2014').locale('en-GB'); //August 11, 2014
alert(d.locale()); //returns en-gb
d.add("days",1).format('L');
//d.add("days",1).locale('en-GB').format('L');
alert(d); //returns November 09, 2014 instead of 12/08/2014
//note, the format is incorrect as well, should be returning short format
我确定我用错了,所以欢迎任何建议。
【问题讨论】:
-
new moment('11/08/2014').locale('en-GB');被解析为Sun Nov 09 2014 00:00:00 GMT+0100 (W. Europe Standard Time)而不是 2004 年 8 月 11 日。所以它读取的是mm/dd/yyyy而不是dd/mm/yyyy。 -
@Halcyon 是的,但是 afaik en-GB 的日期格式为 dd/MM/YYYY,因此它应该正确解析它..
-
是的,这也是我所期望的。也许
.locale电话来得太晚了?我对momentjs还不够熟悉。 -
感谢两位的回复。
标签: javascript momentjs date-parsing