【问题标题】:create javascript date UTC创建javascript日期UTC
【发布时间】:2012-11-13 15:54:51
【问题描述】:

假设我在控制台中输入以下代码:

var TheDate = new Date(2012, 10, 5);
TheDate.toUTCString();
"Sun, 04 Nov 2012 23:00:00 GMT" (I'm +1 hour ahead of GMT)

结果是日期实际上设置为本地时间。如何创建设置为 UTC 的日期?如果我这样做 TheDate.toUTCString() 我希望它说 2012 年 11 月 5 日 00:00:00 GMT。

谢谢。

【问题讨论】:

    标签: javascript date datetime utc


    【解决方案1】:

    使用Date.UTC() 方法:

    var TheDate = new Date( Date.UTC(2012, 10, 5) );
    console.log( TheDate.toUTCString() );
    

    返回

    Mon, 05 Nov 2012 00:00:00 GMT
    

    日期.UTC

    接受与构造函数的最长形式相同的参数,并返回 Date 对象中自世界标准时间 1970 年 1 月 1 日 00:00:00 以来的毫秒数。

    【讨论】:

    • new Date( Date.UTC(2012, 10, 5) );Date.UTC(2012, 10, 5);的功能区别是什么?
    • @JakeT。 Date.UTC() 只返回时间戳(一个数字)。 new Date( Date.UTC() ) 将返回一个 Date 对象。
    • 我运行TheDate.getTimezoneOffset();。我没有得到0 的期望,知道如何解决这个问题吗?
    • @JoshBowling — Date 对象没有偏移量,它们是 UTC。 getTimezoneOffset 返回主机系统在 Date 表示的时刻的偏移量。将系统设置更改为具有不同偏移量的时区,getTimezoneOffset 将返回不同的值。
    【解决方案2】:

    我找到了它的速记,您也可以将 ISO 格式 的日期创建为 new Date('YYYY-MM-DD'),以将日期创建为 UTC

    var DateA = new Date( '2012-11-05' );
    console.log( DateA.toUTCString() );
    
    // note the difference between input methods
    
    var DateB = new Date( Date.UTC(2012, 10, 5) );
    console.log( DateB.toUTCString() );

    【讨论】:

      【解决方案3】:

      我建议你使用 momentjs (

      momentjs.com

      ),那么你所要做的就是:

      var theDate = new Date(2012, 10, 5),
          utcDate = moment.utc(theDate);
      

      【讨论】:

      • 这不能回答问题。作者想要一个 Date 对象,moment.utc 不返回 Date。
      猜你喜欢
      • 1970-01-01
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2016-02-25
      • 2015-05-07
      • 2019-08-20
      相关资源
      最近更新 更多