6

我正在使用 API.ai 在 Google API 上的操作上进行构建。为了完成我的一项操作,我需要知道用户的位置和当地时间。

我已经能够成功地请求并接收回用户的位置。

但是,我看不到任何获取用户本地时间或时区偏移的方法。有没有办法做到这一点?

(我意识到我可以使用该位置来找出偏移量,但这需要另一个 API 调用或使用另一个库,我宁愿避免这样做。)

提前致谢。

- 更新 -

根据下面 Leon 的回答,截至 2017 年 1 月 18 日,API 目前不提供此信息。为了获得所需的信息,我请求了用户精确位置的许可,该位置返回 lat 和 lng。然后我使用GeoNames 时区 API 来获取时区偏移量。

4

2 回答 2

3

虽然据我所知,时区尚未包含在本地。您可以在库旁边使用位置权限来动态获取本地时间。

我在这里使用的库是 momentTz 和 timezone。后者获取由位置许可提供的经纬度插值的时区。然后使用解析的时区将 momentTz 本地提供的 UTC 标准时间转换为所寻求的本地时间。

const startTz = momentTz(); //Returns standard UTC time, independent of locality
const timestamp = 1402629305; // Any random timestamp will work, it wouldn't unnecessarily impede your results 

timezone.data(latitudeValue, longitudeValue, timestamp, function(err, tz) {
  if (err) {
    console.log(err);
  }

var zoneHolder = tz.raw_response.timeZoneId; //Appropriate timezone is returned here based on latitudeValue and longitudeValue passed
const localTime = startTz.tz(zoneHolder).format('LLL'); //local time which you seek;
});
于 2018-04-02T11:59:20.777 回答
0

设备的时区尚未提供给操作。

于 2017-01-18T16:35:34.670 回答