【问题标题】:google map Time Zone get local time谷歌地图时区获取当地时间
【发布时间】:2013-03-24 11:22:50
【问题描述】:

我正在尝试使用谷歌时区 API。我提供经度和纬度,API 给我时区。

如何使用以下值(dstOffset 和 rawOffset)获取本地时间?

这是 Json

{
   "dstOffset" : 0.0,
   "rawOffset" : -28800.0,
   "status" : "OK",
   "timeZoneId" : "America/Los_Angeles",
   "timeZoneName" : "Pacific Standard Time"
}

我已经尝试过这个 javascript 函数,但我没有得到正确的时间。

function calcTime(offset) {
    var d = new Date();
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000*offset));

    alert("The local time is " + nd.toLocaleString());
}

calcTime(-28800.0);

感谢您的帮助!

【问题讨论】:

    标签: javascript api timezone timestamp-with-timezone


    【解决方案1】:

    你已经接近了。问题出在这一行:

    var nd = new Date(utc + (3600000*offset));
    

    Json 给出的偏移量似乎以秒为单位;您将其视为以小时为单位。将其更改为以下内容,它应该开始工作:

    var nd = new Date(utc + (1000*offset));
    

    这是工作的jsFiddle

    【讨论】:

    • 这对于伦敦市来说无法正常工作,返回的 rawOffset 为“0”。最后的时间有一个小时的延迟。能否请您简要介绍一下这个计算是如何完成的。
    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2014-04-12
    • 2013-05-22
    • 2016-05-02
    • 1970-01-01
    • 2019-04-16
    • 2017-04-25
    • 2019-03-08
    相关资源
    最近更新 更多