我正在尝试使用 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
我确定我使用的不正确,所以欢迎任何建议。
答案 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