Как рассчитать восточное время с помощью объекта Javascript Date? - PullRequest
3 голосов
/ 04 ноября 2010

Я работаю над личным проектом с использованием Javascript, и как часть этого проекта я хочу получить текущую дату (включая время) и отобразить ее соответствующим образом.Ничего страшного, верно?Ну, сделка заключается в том, что я хочу вернуть время и дату в Восточный дневной свет , независимо от того, где в мире находится IP.

Если этоне возможно, какие альтернативные методы вы предлагаете?Есть ли у php такая функциональность?Я мог бы написать простой скрипт php, который берет дату и конвертирует ее, но я хочу сохранить ее в JS, если это вообще возможно.

Я пытаюсь найти лучший способ сделать это, но я был бы признателен за любую помощь, которую вы могли бы предложить.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 04 ноября 2010

Я нашел это в интернете , и таких сценариев намного больше:

function calcTime(offset) {

    // 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);

    return new Date(utc + (3600000*offset));

}

Итак, вы получаете текущее время, добавляете смещение текущего местоположения, чтобы получить время UTC, а затем вы возвращаете новую дату, где вы снова добавляете смещение определенного часового пояса.

1 голос
/ 04 ноября 2010

JavaScript родной Date объектам известны только два часовых пояса, UTC и часовой пояс пользователя (и даже в этом случае объем информации, которую можно извлечь о часовом поясе языка, ограничен). Вы можете работать в UTC и вычесть 4 часа, чтобы получить EDT, но вы действительно всегда хотите EDT, а не EST?

Если вы хотите выполнить преобразование часового пояса между произвольными областями в PHP, вам нужно перетащить в большую библиотеку с собственной информацией о часовом поясе, например TimezoneJS .

Может быть, лучше хранить все компоненты JavaScript в формате UTC и позволить стороне PHP беспокоиться о форматировании их для определенной локали / часового пояса, используя, например, материал часового пояса из Дата / Время .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...