Стандартный способ переключения с / на user_timezone и gmt - PullRequest
0 голосов
/ 01 февраля 2012

Я использую php's date_default_timezone_set() и настраиваю его в соответствии с полем timezone пользователя в пользовательской таблице. Поэтому я с легкостью могу показывать дату / время пользователям и получать от них дату / время.

Но для хранения значений, связанных с датой, в базе данных я должен использовать стандартный часовой пояс GMT.

Вопрос: Каков лучший или, может быть, стандартный способ переключения в / из user_timezone и GMT?

Предлагаете ли вы мне следовать этим шагам, когда я хочу вставить или обновить поле в базе данных?

  1. Изменить часовой пояс с помощью date_default_timezone_set('GMT');
  2. Получите время, используя $inserttimestap = time(); или $inserttimestamp = mktime();
  3. Измените часовой пояс на пользовательский по умолчанию, используя: date_default_timezone_set($this->session->userdata('timezone'));

1 Ответ

1 голос
/ 06 февраля 2012

Абсолютно нет необходимости использовать date_default_timezone_set('GMT'), потому что для преобразования в GMT существует специальный набор функций, имена которых начинаются с 'gm':

  • gmmktime() получает метку времени в часовом поясе GMT.
  • gmdate(), который дает формат даты по Гринвичу.
  • Существует также gmstrftime() Руководство по PHP

  • Кроме того, примечательно, что time() возвращает текущую метку времени только в GMT

...