Отображение часовых поясов, не используя UTC

Хорошо, у меня есть он.
Не решение моего вопроса, но все еще решает проблему.

я просто не покажу "Следующую" ссылку, когда представление покажет последнее изображение.

не Может полагать, что я не думал о нем ранее...

спасибо за Ваших парней усилий

5
задан David Snabel-Caunt 13 October 2009 в 20:11
поделиться

1 ответ

Короткий ответ заключается в том, что с часовыми поясами сложно работать, и никто не хочет отвечать на сложные вопросы!

Чем длиннее, то ответ такой:

Во-первых, вам нужно создать представление вашей даты в их текущих часовых поясах. Следующие значения эквивалентны:

date_default_timezone_set('America/New York');

$date = new DateTime(null);

ИЛИ

$date = new DateTime(null, new DateTimeZone('America/New York'));   

Это дает вам дату с зоной, установленной на Америка / Нью-Йорк. Мы можем легко преобразовать его в часовой пояс пользователя, в данном случае Europe / Paris, с помощью следующей строки:

$date->setTimezone(new DateTimeZone('Europe/London'));

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

echo $date->format('d/m/Y H:i:s');

Я настоятельно рекомендую это вместо арифметики, так как встроенные функции PHP знают время перехода на летнее время и множество сложных вещей, с которыми вы не справитесь.


Мой тестовый сценарий полностью:

date_default_timezone_set('America/Belize');

$date = new DateTime(null);

echo $date->format('d/m/Y H:i:s') . '<br>';

$date->setTimezone(new DateTimeZone('Europe/London'));

echo $date->format('d/m/Y H:i:s') . '<br>';
5
ответ дан 14 December 2019 в 19:18
поделиться
Другие вопросы по тегам:

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