JavaScript 根据浏览器时区更改我的日期

JavaScript Changes My Date Based on Browser Time Zone

本文关键字:我的 日期 时区 浏览器 JavaScript      更新时间:2023-09-26

我正在尝试在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);