Неполный вывод данных за час

#php #date #time #timezone

#php #Дата #время #Часовой пояс

Вопрос:

Я использую Wanp в качестве тестового сервера. Вот мой код:

 $dt = time();
$mysql_datetime = strftime("%Y-%m-%d %H:%M:%S %p %z" , $dt);
echo $mysql_datetime;
  

Вот результат:

 2011-04-17 01:36:55 PM Eastern Standard Time
  

Моя проблема в том, что вся информация верна, за исключением или часа, который на 4 часа опережает. Предполагается, что час ( 01 PM) равен ( 09 AM). Я проверил дату и время на своем компьютере, и часовой пояс указан правильно. Что могло бы вызвать это, пожалуйста, помогите.

Ответ №1:

Скорее всего, это связано с неправильной настройкой часового пояса. (Хотя странно, что %z является правильным, что я предполагаю.)

Вы пробовали вызывать date_default_timezone_set с соответствующим значением часового пояса?

Ответ №2:

Вы должны сначала правильно установить свой часовой пояс, прежде чем что-либо еще.

Используйте date_default_timezone_set . Вот список поддерживаемых часовых поясов.

Ответ №3:

Не могли бы вы попробовать использовать класс DateTime (при условии, что у вас достаточно свежий php)?

Что-то вроде:

 $dt = new DateTime();
echo $dt->format('Y-m-d H:i:s A e');
  

В качестве альтернативы, если часовой пояс по-прежнему указан неправильно, вы могли бы попытаться указать его:

 $dt = new DateTime(null, new DateTimeZone('EST'));
echo $dt->format('Y-m-d H:i:s A e');
  

В любом случае, для получения дополнительной информации по отладке я бы рекомендовал вам посмотреть, ini_get('date.timezone') что, если неверно, должно быть правильно настроено в вашем php.ini файле.