我正在尝试在JavaScript中创建一个Date
对象,传递一个这样的字符串:
2014-11-30T00:00:00.0000000
但是,Date
对象的值为:
2014年11月29日星期六17:00:00 GMT-0700(山地标准时间)
当我想要11/30时,它改为11/29。无论浏览器在什么时区,我有什么方法可以将日期设为2014-11-30?
注意:一种可能的解决方法是使用Date(year, month, day)
构造函数;但是,我正在用JSON字符串构建数据,这似乎不支持这个。
修改
实际上,我刚刚进行了测试并使用Date(2015, 1, 1)
创建了一个日期,它给了我:
2015年2月2日星期一00:00:00 GMT-0700(山地标准时间)
所以我甚至无法创建一个日期,让它成为我想要的日期。我不明白为什么这么困难。
答案 0 :(得分:1)
您可以使用Date.UTC
UTC()方法与Date构造函数有两种不同的方式。
- Date.UTC()使用通用时间而不是本地时间。
- Date.UTC()以数字形式返回时间值,而不是创建日期 对象。
编辑 - 为什么SO坚持让链接如此难以发现?在那里,那是一个链接到文档,如果不明显的话。
编辑2 - 我想我误会了。试试这个:
var d = new Date('2014-11-30T00:00:00.0000000');
var utc = new Date(
d.getUTCFullYear(),
d.getUTCMonth(),
d.getUTCDate(),
d.getUTCHours(),
d.getUTCMinutes(),
d.getUTCSeconds()
);
alert('d: ' + d + "\n" + 'utc: ' + utc);