Скажем, пользователь в CA, США выбирает дату, время и часовой пояс:
Всемирный пивной марафон начинается на 8/15/2013 10:00, UTC-08: 00
Другой пользователь в Центральной Европе открывает страницу, на которой отображаются эта дата и время. Он не хочет делать расчеты времени (уже было немного пива). Он просто хочет видеть эту дату и время:
8/15/2013 19:00
Учитывая, что браузер получает информацию о дате и времени, введенную пользователем в Калифорнии:
Есть ли способ, в javascript, без внешних веб-сервисов, сделать правильное преобразование? То есть, чтобы обнаружить, что 10 утра UTC-08: 00 действительно должно быть 10 утра UTC-07: 00, так как это переход на летнее время.
Возможно, я неправильно понял это с самого начала, но я не хочу, чтобы пользователь ввода мог подумать, следует ли ему выбирать UTC-08: 00 (PST) или UTC-07: 00 (PDT). Я предполагаю, что, поскольку стандартный часовой пояс в СА - это PST, люди не переключаются на размышления в PDT в летнее время. Или они?!
В центральной Европе стандартная дата - UTC + 01: 00, дата перехода на летнее время - UTC + 02: 00. Таким образом, разница между CA и Европой должна составлять 9 часов, за исключением двух периодов в году, когда одна или другая область переключается между режимами Standard и Daylight Saving.
Update:
После того, как мы больше думаем и читаем комментарии, мне в идеале понадобится следующее:
var utcOffset = f('2013-08-15T10:00', 'America/Los_Angeles');
// utcOffset == "-07:00"
var utcOffset = f('2013-11-15T10:00', 'America/Los_Angeles');
// utcOffset == "-08:00"
Пока это выглядит как moment.js/timezone plugin, предложенный Guido Preite, способен сделать это (более или менее).
Любой другой способ, используя API-интерфейсы браузера?