PHP - дата() по сравнению с датой.часовой пояс / дата по умолчанию установлен часовой пояс()


У меня только что появился новый компьютер, и я настраивал PHP/MySQL/базы данных и т.д... Я думаю, что я почти на месте, за исключением того, что он бросил этот крученый мяч. Мой скрипт входа в систему работал нормально, но теперь он выдает следующее предупреждение (которое портит JSON).

Предупреждение: дата() [функция.дата]: Небезопасно полагаться на настройки часового пояса системы. Вы требуется для использования параметра дата.часовой пояс или функции date_default_timezone_set(). В случае, если вы использовали любой из этих методов, и вы все еще получаете это предупреждение, вы, скорее всего, неправильно написали идентификатор часового пояса. Мы выбрали "Антарктида/Маккуори" для "EST/10.0/без летнего времени" вместо этого в .../php/login.php в режиме онлайн 47

Мой код, очевидно, использует date() и работает в живой версии и на старой машине. Я получаю два предупреждения для следующих двух строк кода:

$date = date("ymd");

$this_year = date("y");

Мое исследование (см. здесь ) предполагает, что поведение этих функций зависит от php.ini.

Итак, должен ли я изменить php.ini на новой машине, или я использую какой-то устаревший метод, и должен ли я вообще отказаться от date()?

Спасибо.

Author: Nick, 2012-04-25

4 answers

Вам не нужно изменять файл php.ini, если вы используете date_default_timezone_set(). Просто установите его в часовой пояс, в котором вы будете работать.

Что-то вроде этого должно быть в файле конфигурации или на странице, где вы работаете с датами (если это только одна страница):

date_default_timezone_set('America/Los_Angeles');
 11
Author: John Conde, 2013-04-04 23:37:02

Это не исключение, это предупреждение, которое, вероятно, появляется сейчас, потому что ваши настройки отчетов об ошибках на новой машине отличаются от старой.

Я бы предложил следовать предложению в предупреждении и использовать date_default_timezone_set() чтобы установить часовой пояс в сценариях, где вам это нужно.

 4
Author: jeroen, 2012-04-25 01:48:22

Во-первых, вы, хотя это может быть известно, это решает проблему.

date_default_timezone_set('Your/Timezone');

Если вы хотите настроить в php.ini, измените ниже

[Date]
; ...
; ...
date.timezone = Your/Timezone
 4
Author: tosin, 2012-04-25 01:50:12

Вам не нужно изменять php.ini.

Однако, если у вас есть часовой пояс, который вы будете использовать для большинства ваших php-файлов, добавление следующей строки в ваш php.ini должно помочь.

date.timezone = "Your/Timezone"

В моем случае я добавил следующую строку в php.ini. Лично я предпочитаю, чтобы все наши серверы находились в часовом поясе UTC.

date.timezone = "UTC"
 4
Author: Haluk, 2012-05-12 19:27:06