У меня есть метка времени в миллисекундах ( Время / время Unix из эпохи ), отправленная с моего сервера, которая использует время Joda и всегда постоянный часовой пояс " America / New_York ». На моем клиенте я также хочу гарантировать, что время отображается в соответствии с часовым поясом America / New_York . Я использовал документацию MDN Date и решил, что проще всего создавать экземпляры объектов Date, используя новый конструктор Date ( milliseconds ).
Теперь сложная часть: Я хочу иметь возможность печатать время для клиентов, которые используют мой сайт за пределами часового пояса Америки / Нью-Йорка. Я знаю, что могу getTimezoneOffset из Date object
, так что теперь я рассматриваю возможность выполнения арифметики для этого объекта на основе смещения и полагаюсь на сервер, чтобы сказать мне, находится ли я в DST или нет. Используя этот метод из библиотеки Joda Time .
Мне бы хотелось решение, которое работает как в IE8, так и в современных браузерах. Какие-нибудь мысли? Есть ли какие-нибудь небольшие утилиты, которые уже выполняют это стандартным способом?
// dateTimeAsString is sent from the server (via JSON) as a String
// dateTimeAsString example: "1311387300000"
var dateTimeAsInt = parseInt(dateTimeAsString,10);
var dateTimeInNY = new Date(dateTimeAsInt);
// My current offset is 240
var nyOffset = dateTimeInNY.getTimezoneOffset();
// Somewhere out west
var dateTimeInTexas = new Date(dateTimeAsInt);
var isDST = false; // sent from server
// What I want to do, this is not legal JavaScript
dateTimeInTexas.printWithOffset(isDST,nyOffset);