Ошибка PHP mktime()

Я внезапно получаю следующую ошибку на сайте, который я сделал, когда я импортирую файл excel в MySQL с помощью библиотеки Excel_Reader.

Это сообщение об ошибке, которое выдает mktime():

Сообщение: mktime() [function.mktime]: небезопасно полагаться на системные настройки часового пояса. Вам обязательно использовать параметр date.timezone или функцию date_default_timezone_set(). Если вы использовали какой-либо из этих методов и все еще получаете это предупреждение, вы, скорее всего, ошиблись в идентификаторе часового пояса. Мы выбрали «Азия/Красноярск» вместо «7.0/без летнего времени».

Ошибка возникает из-за следующей строки:

$string = date ($format, mktime($hours, $mins,$secs, 
                $dateinfo["mon"], $dateinfo["mday"], $dateinfo["year"]));

В настоящее время я использую PHP версии 5.3.1. Этот скрипт не совместим с моей версией PHP? Как я могу исправить эту ошибку?


person dyn    schedule 22.07.2013    source источник
comment
Вы пытались ПРОЧИТАТЬ сообщение об ошибке? Там четко написано, что ты делаешь не так   -  person zerkms    schedule 22.07.2013


Ответы (1)


Ошибка говорит обо всем. Полагаться на системные настройки часового пояса — плохая идея, поэтому вам нужно будет указать часовой пояс, используя один из следующих параметров.

У вас есть три решения:

  1. Установите часовой пояс по умолчанию в вашем PHP-скрипте, используя date_default_timezone_set():

     date_default_timezone_set("America/Los_Angeles");
    
  2. Используйте ini_set(), чтобы установить часовой пояс по умолчанию:

     ini_set('date.timezone', 'America/Los_Angeles'); 
    
  3. Определите его как date.timezone в файле php.ini.

Документация: date_default_timezone_set() ini_set()

Надеюсь это поможет!

person Amal Murali    schedule 22.07.2013
comment
Это было легко, я поместил date.timezone = UTC в свой файл php.ini, так как это то, что я использовал всегда, и проблема была решена сразу. - person Alexis Wilke; 24.02.2014