以下示例尝试使用moment.js从字符串(2016-03-27T02:00:00)解析日期
http://jsfiddle.net/PAc3j/507/
var date = moment("2016-03-27T02:00:00").format('DD-MM-YYYY hh:mm:ss');
alert(date);
在firefox上执行的脚本提供2016-03-27 01:00:00
在chrome上执行的脚本提供2016-03-27 03:00:00
无论使用何种浏览器,如何强制执行返回相同日期的时刻?
我忘了提到背景。传递给moment构造函数的字符串是user localtime。日期是特殊的,因为在欧洲,TimeZone从UTC + 1更改为UTC + 2。所以在当地时间2016-03-27 02:00:00不存在。浏览器必须回退到现有的本地日期。无论浏览器如何,我都希望这个日期相同。
答案 0 :(得分:1)
这似乎是一个时区问题。你试过设置utc时区吗?
从Moment docs开始:
如果您希望以UTC日期与日期互动,请使用moment.utc
moment.utc('2016-01-01T23:35:01');
这会导致utc偏移量为+0:00
或者您可以创建修复时区的日期,如果它与utc不同,例如:
var date = moment("2016-03-27T02:00:00+02:00").format('DD-MM-YYYY hh:mm:ss');