如何从google地图计算UTC时间和本地时间?
How to calculate the utc time and the local time from google map?
如何根据google地图计算UTC时间和本地时间?
例如,这是 json 来自 google、
的结果
{
"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);
我说得对吗?
您始终可以使用 Google 提供的时区 API 来计算当地时间。从此 API 请求数据时,您必须向以下 API.
发出 GET 请求
https://maps.googleapis.com/maps/api/timezone/outputFormat?parameters
编辑
在参数中,所需的值是 lat/lng 中位置的坐标和时间戳。 时间戳 始终是 UTC 时间,您可以通过此 link 获得。您可以直接将其作为 UTC 放入时间戳变量中并获得响应。
要计算当地时间,您必须计算时间戳参数的总和,以及结果中的 dstOffset 和 rawOffset 字段。 dstOffset 和 rawOffset 字段是您发送请求后获得的 JSON 响应。
a Date()
只不过是 UTC 中自 1970-1-1 以来的毫秒数。如果你向它添加一些东西,你就会改变那个数字,这会搞砸你所有的计算。
该数字的显示方式(即时区)是一个格式问题。
这就是 moment.js 存在的原因。它使日期时间可读,而无需更改基础数据。
来自他们的文档:var c = moment.tz(1403454068850, "America/Toronto");
如何根据google地图计算UTC时间和本地时间?
例如,这是 json 来自 google、
的结果{
"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);
我说得对吗?
您始终可以使用 Google 提供的时区 API 来计算当地时间。从此 API 请求数据时,您必须向以下 API.
发出 GET 请求https://maps.googleapis.com/maps/api/timezone/outputFormat?parameters
编辑
在参数中,所需的值是 lat/lng 中位置的坐标和时间戳。 时间戳 始终是 UTC 时间,您可以通过此 link 获得。您可以直接将其作为 UTC 放入时间戳变量中并获得响应。
要计算当地时间,您必须计算时间戳参数的总和,以及结果中的 dstOffset 和 rawOffset 字段。 dstOffset 和 rawOffset 字段是您发送请求后获得的 JSON 响应。
a Date()
只不过是 UTC 中自 1970-1-1 以来的毫秒数。如果你向它添加一些东西,你就会改变那个数字,这会搞砸你所有的计算。
该数字的显示方式(即时区)是一个格式问题。 这就是 moment.js 存在的原因。它使日期时间可读,而无需更改基础数据。
来自他们的文档:var c = moment.tz(1403454068850, "America/Toronto");