Javascript Date():如何将本地日期转换为GMT

时间:2015-02-16 07:53:06

标签: javascript date datetime

我发送的服务器时间对象为零日期,发送日期为: Thu Jan 01 1970 01:02:01 GMT + 0200 如何将其转换为GMT + 0000?我需要告诉服务器一些任务持续时间,所以我希望它只是持续时间01:02:01。但发送日期是本地的,服务器将其理解为03:02:01!如何将GMT指数归零?

由于

2 个答案:

答案 0 :(得分:2)

从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)); 

如果可以,请考虑使用一个数字(例如,毫秒数)处理一些适用于您的值。

答案 1 :(得分:0)

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