当我尝试从另一种日期格式创建日期对象时,结果日期正在改变它的值

时间:2016-11-01 06:50:07

标签: javascript date

当我尝试使用其他日期格式创建日期对象时,结果日期正在更改其值。如何在不改变日期值的情况下实现这一目标?

new Date("Mon, 31 Oct 2016 00:00:00 GMT");

结果将于2016年10月30日20:00:00 GMT-0400(东部夏令时间),如何从上面获得星期一31日期?

2 个答案:

答案 0 :(得分:1)

从创建的日期对象中调整 timezoneOffset 应该可以解决问题, 但在使用它时要小心,因为你应该确保日期对象是从GMT创建的,而不是从当地时间开始。

如果输入日期为格林威治标准时

,则会发布以下答案
var tempDate = new Date("Mon, 31 Oct 2016 00:00:00 GMT");
var tempTime = tempDate.getTime() + (tempDate.getTimezoneOffset() * 60000);
tempDate = new Date(tempTime);
console.log(tempDate);

答案 1 :(得分:0)

它不会更改日期,只会将其转换为您当地的时区。这有点烦人的行为,我知道解决它的唯一方法是将您的系统时区设置为GMT。如果你需要做日期和时间工作,你可能想看一下Moment.js - http://momentjs.com/