Так что я из Великобритании и хостинг в США. Я связался с моим хостом и сказал, что время моего сервера установлено на 6 часов по сравнению с GMT. Они сказали, что мне нужно изменить это в моей CMS.
Как мне это сделать? Всякий раз, когда я ставлю сейчас (), я получаю неправильное время.
Никогда не видел этого раньше, может ли кто-нибудь предложить какие-либо предложения?
Вы можете изменить часовой пояс, используя PHP
putenv("TZ=Europe/London");
или если это вызывает ошибку:
date_default_timezone_set('Europe/London');
Альтернативно, если вы можете получить доступ к своему php.ini (возможно, не из-за вашего хостинга)
date.timezone = "Europe/London"
Измените настройку выше, и вы должны быть в порядке. Дополнительно к вышесказанному вы можете установить php.ini с помощью PHP
ini_set('date.timezone', 'Europe/London');
http://www.php.net/manual/en/timezones.europe.php
В моей спешке ответить – вы могли бы написать GMT вместо Европы / Лондона
Для MySQL – вы можете выполнить SET time_zone = 'GMT'
перед вашими запросами, чтобы установить временные зоны time_zone config docs .
Для PHP – вы можете выполнить date_default_timezone_set()
используя один из поддерживаемых часовых date_default_timezone_set()
. Вы также можете установить значение с помощью директивы .htaccess
:
php_value date.timezone UTC
Вы можете определить, сколько секунд вы находитесь перед местоположением в США, время сервера установлено и добавляет это значение в метку времени, чтобы получить правильное время.
Например, если сервер находится в Нью-Йорке, то это на 18000 секунд отстает от времени в Лондоне. Таким образом, получение правильной даты будет: <?php $now = date('d M Y', (time() + 18000)) ?>
Используйте DateTime :: setTimeZone, чтобы определить часовой пояс. Документация находится в http://www.php.net/manual/en/datetime.settimezone.php