2013-04-02 6 views
3

Я пытаюсь использовать API часовой пояс Google. Я предоставляю долготу и широту, и API дает мне часовой пояс.google map Часовой пояс получить местное время

Как я могу получить местное время с этим следующим значением (dstOffset и rawOffset)?

Вот 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 + (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

Смежные вопросы