2013-04-02 70 views
3

我正在嘗試使用谷歌時區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); 

感謝您的幫助!

回答

4

你很近。問題出現在這一行:

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

Json給出的偏移似乎是以秒爲單位;你會像在幾個小時內那樣對待它。更改爲以下,它應該開始工作:

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

這裏是工作jsFiddle

+0

對於倫敦市,rawOffset返回值爲'0'的城市,這並不按預期工作。最後時間延遲一小時。你能簡單介紹一下這個計算是如何完成的。 – Wishnu