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()
?
Спасибо.
4 answers
Вам не нужно изменять файл php.ini, если вы используете date_default_timezone_set()
. Просто установите его в часовой пояс, в котором вы будете работать.
Что-то вроде этого должно быть в файле конфигурации или на странице, где вы работаете с датами (если это только одна страница):
date_default_timezone_set('America/Los_Angeles');
Это не исключение, это предупреждение, которое, вероятно, появляется сейчас, потому что ваши настройки отчетов об ошибках на новой машине отличаются от старой.
Я бы предложил следовать предложению в предупреждении и использовать date_default_timezone_set()
чтобы установить часовой пояс в сценариях, где вам это нужно.
Во-первых, вы, хотя это может быть известно, это решает проблему.
date_default_timezone_set('Your/Timezone');
Если вы хотите настроить в php.ini, измените ниже
[Date]
; ...
; ...
date.timezone = Your/Timezone
Вам не нужно изменять php.ini.
Однако, если у вас есть часовой пояс, который вы будете использовать для большинства ваших php-файлов, добавление следующей строки в ваш php.ini должно помочь.
date.timezone = "Your/Timezone"
В моем случае я добавил следующую строку в php.ini. Лично я предпочитаю, чтобы все наши серверы находились в часовом поясе UTC.
date.timezone = "UTC"