Intereting Posts
PHP некоторые значения $ _POST отсутствуют, но присутствуют в php: // input Что происходит быстрее, большой объединенный запрос с большим количеством PHP или несколькими небольшими выборками с меньшим количеством PHP? PHP Неустранимая ошибка: вызов неопределенной функции test_input () в C: \ wamp \ www \ web \ new9.php в строке 11 Как сохранять и извлекать данные, пригодные для контента читать cdata из rss-канала PHP: превращение многомерных массивов в одномерные массивы Php: Преобразование плоского массива в дерево, подобное структуре Как получить полный путь к php-интерпретатору / двоичному файлу без доступа к оболочке Работы Yii и cron Как я могу получить имя автоматического увеличения поля или имя поля первичного ключа из таблицы mysql? Бакалея CRUD Join table MySQL ORDER BY rand (), имя ASC Как вставить post_id в базу данных mysql php – mysql результаты с ошибкой ORDER & LIMIT без английского Добавление разрыва в название продукта на страницах магазина на определенную длину

php – date_default_timezone_set не работает, но ini_set 'date.timezone' делает. Зачем?

Как говорится в названии, кто-нибудь может объяснить, почему код

ini_set( 'date.timezone', 'Europe/Athens' ); 

работает, но

 date_default_timezone_set( 'Europe/Athens' ); 

не?

Я искал решение для преобразования временной метки, и все, что я мог найти в Интернете, это использовать date_default_timezone_set . Но конверсия всегда отличалась на 1 час.

Затем я обнаружил, что эта функция « strftime() показывает неправильное время », которая использует код init_set (а потом у меня RTM и выяснили, что это уже упоминалось в документации). Я попробовал, и это сработало.

Но я не нашел ответа, почему date_default_timezone_set не работает.

Может ли кто-нибудь объяснить, пожалуйста?

Вы должны использовать старую версию PHP.

 date_default_timezone_set is for PHP 5.1.2 and above. 

Попробуйте php -v и проверьте свою версию PHP.

Вы можете использовать:

 putenv("TZ=Europe/Berlin"); // PHP 4 

локальный

сервер

Уже довольно поздно, у меня такая же проблема, и я вижу, что есть разница, я публикую скриншот с моего localhost и моего личного сервера phpinfo для часового пояса.

На моем localhost date_default_timezone_set ('[timezone]') работает правильно, однако, на сервере он всегда возвращает UTC. Основываясь на php doc, похоже, что часовой пояс не установлен в php ini моего сервера, поэтому я, вероятно, проигнорировал часовой пояс, поскольку значение не определено ранее.

Используя init_set, он делает доступным часовой пояс. Я думаю, что часовой пояс не предопределен на php ini.