Вопрос по php, timezone, time – Как проверить, есть ли смещение времени в летнее время?

5

Используемая мной CMS позволяет мне получить доступ к смещению времени пользователя от времени UTC / GMT. Таким образом, если пользователь установил для своего часового пояса значение EST, то это смещение будет равно -5.

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

date('M j Y h:i A', time() + $offset*3600)

Это работает,except когда летнее время влияет на пользователя, то оно отстает на час.

Итак, мой вопрос заключается в том, как я могу определить, нужно ли к данному смещению времени (например, -5) добавить час?

Ваш Ответ

3   ответа
6

потому что смещение применяется ко всей широте и странам, которые не имеют одинакового действующего DST. Напримерв Австралии летнее время не наблюдается в Квинсленде, Северной Территории или Западной Австралии но везде Вы должныгеолокация ваших пользователей а затем проверить сPHP DateTimeZone API есть ли DST в этой стране.

Также смКак автоматически определить часовой пояс пользователя?

(related) Интересно читать:derickrethans.nl/storing-date-time-in-database.html
2

что у вас есть, равно «-5», то у вас недостаточно информации для такого определения. Было бы предпочтительным, если бы вы могли организовать доступ к названию часового пояса, в котором находится пользователь (например, «America / New_York»).

8

http://php.net/manual/en/function.date.php

I (capital i) | Whether or not the date is in daylight saving time | 1 if Daylight Saving Time, 0 otherwise.

Это помогает?

Похожие вопросы