JS преобразование часового пояса - PullRequest
3 голосов
/ 15 декабря 2009

В Javascript у меня есть метка времени, с которой я работаю так:

var origUnixTimestamp = (date * 1000);

Наряду с этой отметкой времени у меня есть смещение UTC (-5, хотя это переменная). Я рассчитываю преобразовать origUnixTimestamp в смещение UTC пользователя, используя метод getTimezoneOffset () для Date.

Мне просто интересно, как я учту исходное смещение UTC временных меток (например, -5) и преобразую его в текущее смещение UTC пользователей. Я полагаю, это довольно просто, но в настоящий момент это искажает мой мозг.

Ответы [ 3 ]

3 голосов
/ 15 декабря 2009

Javascript делает это для вас. Все даты, хранящиеся в объекте Date, уже преобразованы в правильный часовой пояс (просто передайте свою эпоху конструктору). Один и тот же объект Date имеет возможность работать с датой эпохи и UTC.

var some_date = new Date(epoch);
var time = some_date.getDay(); // will be different in different zones
some_date.setDay(22); // to set day
var origUnixTimestamp = some_date.getTime(); //returns you epoch
2 голосов
/ 20 мая 2011

Как насчет этого: http://github.com/mde/timezone-js

0 голосов
/ 15 декабря 2009

Эта ссылка содержит инструкции по конвертации из местного времени:

// create Date object for current location
d = new Date();

// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
...