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
答案 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;