我正在尝试在JavaScript中创建一个Date
对象,传递如下字符串:
2014-11-30T00:00:00.0000000
但是,Date
对象的值为:
2014年11月29日星期六 17:00:00 GMT-0700 (山区标准时间)
当我想要 11/29 时,它将其更改为 11/30。有什么方法可以确定日期 2014-11-30,无论浏览器位于哪个时区?
注意:一种可能的解决方法是使用 Date(year, month, day)
构造函数;但是,我正在 JSON 字符串中构造数据,这似乎不支持这一点。
编辑:
实际上,我只是做了一个测试并使用Date(2015, 1, 1)
创建了一个日期,它给了我:
2015年2月2日星期一 00:00:00 GMT-0700(山区标准时间)
所以我甚至不能以这种方式创建一个日期,让它成为我想要的日期。我不明白为什么这如此困难。
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);