Google карта Часовой пояс получить местное время

Я пытаюсь использовать API часовых поясов Google. Я указываю долготу и широту, а 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);

Спасибо за вашу помощь !


person user2037696    schedule 02.04.2013    source источник


Ответы (1)


Вы близки. Проблема в этой строке:

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

Смещение, заданное Json, выражается в секундах; вы относитесь к этому как к часам. Измените его на следующее, и он должен начать работать:

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

Вот рабочий jsFiddle.

person Brian Rogers    schedule 03.04.2013
comment
Это не работает должным образом для города Лондон, где возвращенный rawOffset равен «0». Последнее время задерживается на один час. Расскажите, пожалуйста, как делается этот расчет. - person Vishnu Sureshkumar; 13.05.2015