如何在javascript中使用timezone将日期转换为utc毫秒

时间:2016-09-02 13:21:41

标签: javascript jquery date

getTime()是返回本地还是UTC毫秒?

var startDate = new Date(); 
var val = (startDate.getTime()).toString();

以下逻辑将返回UTC millisecords:

var startDate = new Date(); 
var val = (new Date(Date.UTC(
    startDate.getFullYear(),
    startDate.getMonth(),
    startDate.getDate(),
    startDate.getHours(),
    startDate.getMinutes(),
    startDate.getSeconds()
))).getTime().toString(); 

需要使用America/Los_Angeles

等时区将日期转换为UTC毫秒的脚本

1 个答案:

答案 0 :(得分:1)

在这里创建一个新日期:

var startDate = new Date();

这是设置为您的浏览器当前时区,我的是土耳其:

Fri Sep 02 2016 17:50:06 GMT+0300 (Turkish Summer Time)

如果您将此字符串Fri Sep 02 2016 17:50:06 GMT+0300转换为毫秒,那么您将获得GMT + 0300的值:

Date.parse("Fri Sep 02 2016 17:50:06 GMT+0300")
>> 1472827806000

在这里,您可以使用不同的时区创建日期对象并获得它的毫秒数,假设它是America/Los_Angeles

1)创建日期对象

var d = new Date();

2)获取当地时间价值

var localTime = d.getTime();

3)获取本地偏移量

var localOffset = d.getTimezoneOffset() * 60000;

4)获得UTC

var utc = localTime + localOffset;

5)获取目的地的偏移量,对于America / Loas_Angeles,它是UTC -7

var offset = -7; 
var ala = utc + (3600000*offset);

6)现在ala包含America / Los_Angeles的milis值。最后,如果需要,将其转换为新的日期对象:

var nd = new Date(ala);

最后:现在你可以获得新日期对象的毫秒数:

nd.getTime();
//or
ala;