【问题标题】:How to Convert a Date String to UTC date using Javascript? [duplicate]如何使用 Javascript 将日期字符串转换为 UTC 日期? [复制]
【发布时间】:2014-05-04 13:54:15
【问题描述】:

我有一个日期字符串 CStartDate 为 '3/23/2014',我从 siebel 方面获得。我需​​要将其转换为 timeoffset 为零的 UTC 时区。我尝试过这样的事情:

var a = CStartDate.split('/');

var c = a[0];
a[0] = a[1];
a[1] = c; 

var tacStartDate = new Date(a[2],parseInt(a[1], 10) - 1,a[0]);
alert(tacStartDate);

此警报返回为“Sun Mar 23 2014 00:00:00 GMT+0530(印度标准时间)”,但我不希望偏移 GMT+0530(印度标准时间),而我只希望它是“2014 年 3 月 23 日星期日 00:00:00 GMT+0000”。我希望这是一个日期对象,它将指示 GMT 的日期,而不是任何其他位置。我怎样才能做到这一点?

提前致谢。

【问题讨论】:

  • 我会为此推荐moment.js。让生活变得更轻松。

标签: javascript date


【解决方案1】:

在 Date 对象上尝试toISOString()。如果使用低于 ECMAScript 5,则该函数有一个 polyfill

if ( !Date.prototype.toISOString ) {
  ( function() {

    function pad(number) {
      if ( number < 10 ) {
        return '0' + number;
      }
      return number;
    }

    Date.prototype.toISOString = function() {
      return this.getUTCFullYear() +
        '-' + pad( this.getUTCMonth() + 1 ) +
        '-' + pad( this.getUTCDate() ) +
        'T' + pad( this.getUTCHours() ) +
        ':' + pad( this.getUTCMinutes() ) +
        ':' + pad( this.getUTCSeconds() ) +
        '.' + (this.getUTCMilliseconds() / 1000).toFixed(3).slice( 2, 5 ) +
        'Z';
    };

  }() );
}

【讨论】:

    【解决方案2】:

    日期有一个 UTC 方法。它应该很简单:

    new Date(Date.UTC(a[2],parseInt(a[1], 10) - 1,a[0]));
    

    【讨论】:

    • 嗨,蓝色,我试过了,它返回“2014 年 3 月 23 日星期日 05:30:00 GMT+0530(印度标准时间)”。但我担心的是它无论如何都会产生我不想要的当地时间。我想要一个可以给我日期的对象,如果我住在 GMT,那么它会产生类似“Sun Mar 23 2014 00:00:00 GMT+0000 (GMT)”的东西。我想要这个时间对象。在要求我不能更改日期位置,所以如果我使用上述方法,它将产生当地时间而不是 GMT。我该如何实现?
    猜你喜欢
    • 2016-02-28
    • 2021-04-19
    • 2016-10-07
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    相关资源
    最近更新 更多