【问题标题】:Javascript Date(): How to convert the local date to GMTJavascript Date():如何将本地日期转换为 GMT
【发布时间】:2015-02-16 16:37:16
【问题描述】:

我正在发送带有零日期的服务器时间对象,发送日期是: 1970 年 1 月 1 日星期四 01:02:01 GMT+0200 如何将其转换为 GMT+0000?我需要告诉服务器一些任务持续时间,所以我希望它只是 01:02:01 作为持续时间。但是发送日期是本地的,服务器将其理解为 03:02:01!如何将 GMT 索引归零?

谢谢

【问题讨论】:

标签: javascript date datetime


【解决方案1】:

从 JavaScript Date 对象中获取 GMT 时间非常简单 -

Date.prototype.toUTCString() toUTCString() 方法使用 UTC 时区将日期转换为字符串。

例如:

var test = new Date('Thu Jan 01 1970 01:02:01 GMT+0200').toUTCString();
console.log(test);

请注意,这会正确输出 Wed, 31 Dec 1969 23:02:01 GMT,虽然它不是您要查找的内容,但它会将提供的日期转换为 GMT。

要从输入中获得所需的内容,正则表达式很有用。警告:

  • 假定持续时间永远不会超过 23 小时 59 分 59 秒。如果是这将打破

var test = 'Thu Jan 01 1970 01:02:01 GMT+0200';
var durationMatcher = /\d\d:\d\d:\d\d/; 
console.log(test.match(durationMatcher)); 

如果可以,请考虑使用一些适合您的数值,例如毫秒数。

【讨论】:

    【解决方案2】:
    function convertToGmt(pdate)
    {
    var newDate = new Date(pdate);
        return (newDate.getUTCHours()<10?"0"+newDate.getUTCHours():newDate.getUTCHours())+":"+(newDate.getUTCMinutes()<10?"0"+newDate.getUTCMinutes():newDate.getUTCMinutes())+":"+(newDate.getUTCSeconds()<10?"0"+newDate.getUTCSeconds():newDate.getUTCSeconds());
    }
    

    现在使用这个function 并通过传递你的日期来调用它。

    注意getUTCHours() 返回正确的 UTC 时间。

    工作Fiddle

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 2013-01-02
      • 2012-05-22
      • 2017-03-24
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多