Должен ли часовой пояс WordPress быть установлен на UTC в темах и плагинах?

Я создаю собственную тему и плагин для WordPress и заметил, что вызовы date_default_timezone_get() возвращают «UTC», хотя:

  1. PHP настроен на местный часовой пояс.
  2. Wordpress настроен на местный часовой пояс в Настройки: Общие: Часовой пояс.

Это правильное поведение для WordPress или у меня что-то неправильно настроено, плохой плагин и т. д.?

Нужно ли мне переключаться на мой локальный часовой пояс перед любыми вызовами функций даты и времени PHP (а затем восстанавливать его позже)?


person Colin    schedule 13.10.2016    source источник


Ответы (1)


Да, WordPress внутренне работает в формате UTC, поэтому значения, которые вы получаете от функций PHP date(), time() и т. д., также будут в формате UTC. Вы можете обернуть их вызовами date_default_timezone_set(), но это будет беспорядочно.

Обычно проще использовать встроенную в WordPress функцию current_time().

Он может возвращать отформатированную дату (как если бы вы использовали функцию PHP date()) или метку времени (как вы бы получили, вызвав функцию PHP time()). Возвращаемое значение времени можно использовать для заполнения других функций даты/времени PHP. По умолчанию current_time() возвращает значения для местного часового пояса.

ПРИМЕЧАНИЕ. Не переключайтесь на местный часовой пояс с помощью date_default_timezone_set() перед вызовом current_time(), иначе вы получите неверные значения.

person Colin    schedule 13.10.2016