Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 如何从谷歌地图计算utc时间和本地时间?_Google Maps_Google Maps Api 3_Utc_Localtime - Fatal编程技术网

Google maps 如何从谷歌地图计算utc时间和本地时间?

Google maps 如何从谷歌地图计算utc时间和本地时间?,google-maps,google-maps-api-3,utc,localtime,Google Maps,Google Maps Api 3,Utc,Localtime,如何从谷歌地图计算utc时间和本地时间 例如,这是来自google的json结果 { "dstOffset" : 0.0, "rawOffset" : -28800.0, "status" : "OK", "timeZoneId" : "America/Los_Angeles", "timeZoneName" : "Pacific Standard Time" } 我的职能, function calcTime(offset) { var d

如何从谷歌地图计算utc时间和本地时间

例如,这是来自google的json结果

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

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

        return nd.toLocaleString();
    }
用法

// Calculate the time.
var local = calcTime(-28800.0);
var utc = calcTime(0.0);

我说的对吗?

您可以随时使用谷歌提供的时区API来计算本地时间。从该API请求数据时,必须向以下API发出GET请求

https://maps.googleapis.com/maps/api/timezone/outputFormat?parameters
编辑

在参数中,所需值为lat/lng位置坐标和时间戳。时间戳始终是通过执行此操作可以获得的UTC时间。您可以直接将其作为UTC放入timestamp变量中,并获得响应

要计算本地时间,必须计算时间戳参数和结果中的dstOffset和rawOffset字段之和。dstOffset和rawOffset字段是在发送请求后获得的JSON响应。

a
Date()
只不过是自UTC 1970-1-1以来的毫秒数。如果你加上一些东西,你就改变了这个数字,这会把你的计算搞砸

如何显示该数字(即时区)是一个格式问题。 这就是moment.js存在的原因。它使datetimes具有可读性,而无需更改底层数据


从他们的文档中:var
c=moment.tz(1403454068850,“美国/多伦多”)

谢谢您的回答
localTime:=time.Date…
我认为这不是javascript。对不起,我正在使用javascript。请参阅编辑后的答案。您也不需要编写Javascript函数。您可以直接从答案中提到的链接获取时间戳,并获取可以在时区API中作为时间戳传递的UTC。@AniV当您添加时间戳(UTC)、dstOffset(夏令时偏移量)和RAWCOFFSET(与UTC的偏移量)并创建日期时,例如:新日期(timestamp+dstOffset+RAWCOFFSET*1000),它给出了本地小时的正确数值,但它的时区表示UTC,这是错误的。我发现我必须从google响应中提取数值,并使用矩时区JS获得正确时区的值。我做错了什么?