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

Javascript Date(): How to convert the local date to GMT

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

谢谢

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

Date.prototype.toUTCString() The toUTCString() method converts a date to a string, using the UTC time zone.

例如:

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

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

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() returns 正确的 UTC 时间。

工作Fiddle