使用moment.js将日期添加到区域设置特定日期

时间:2014-08-11 14:58:53

标签: javascript momentjs date-parsing

我正在尝试使用 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

我确定我使用的不正确,所以欢迎任何建议。

1 个答案:

答案 0 :(得分:2)

基于https://github.com/moment/moment/issues/665,您需要为解析器定义L标记。同时,在开始解析之前定义语言环境。所以最终的代码是

moment.locale('en-gb');
var d = new moment('11/08/2014', 'L'); //August 11, 2014
alert(d.locale()); //returns en-gb

d.add("days", 1);
alert(d.format('L')); //returns 12/8/2014

http://jsfiddle.net/omnbgk5s/2