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

时间:2014-12-12 00:34:12

标签: javascript jquery date timezone

我正在尝试在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(山地标准时间)

所以我甚至无法创建一个日期,让它成为我想要的日期。我不明白为什么这么困难。

1 个答案:

答案 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);