2016-05-10 4 views
0

У меня есть несколько дат, заголовок электронной почты:дата PHP/время запроса на электронный заголовок

[date] => Tue, 10 May 2016 03:13:24 -0700 
[MailDate] => 10-May-2016 10:13:24 +0000 

Я получил письмо, в 10:13 утра в моем часовом поясе.

$d=strtotime("10-May-2016 10:13:24 +0000"); 
echo "Created date is " . date("Y-m-d h:i:sa", $d); 

Это выход я получаю:

Created date is 2016-05-10 11:13:24am 

не должны это показывать время в 10:13:24 утра?

+1

Вы устанавливаете часовой пояс с '+ 0000' - так что нет, он не будет гарантированно локальным для вас, если вы не установите его * свой * часовой пояс. –

ответ

1

Короткий ответ

Нет, нет ничего в этом коде, что гарантирует видящего 10:13:24 вместо 11:13:24.

Почему

Вы определяете часовой пояс с +0000, поэтому результаты не гарантированы, чтобы быть точным. Даже если ваш часовой пояс GMT (+0000), в вашем скрипте нет ничего, определяющего ваш часовой пояс. Единственное, что присутствует в часовом поясе, - это определение , которое указывает часовой пояс строки.

Убедитесь, что ваш часовой пояс либо постоянно установлен в PHP, либо временно в этом скрипте.

Измените свой php.ini (для постоянного изменения), или добавить строку, чтобы установить часовой пояс, прежде чем делать даты/времени, связанные с функциональностью:

date_default_timezone_set (string $timezone_identifier); 

http://php.net/manual/en/function.date-default-timezone-set.php

Попробуйте, что до вашего сценария , и посмотрите, что выводит ваш сценарий. Если все настроено правильно, вы получите подходящее время.

В противном случае вы всегда можете просто удалить +0000 с вашего звонка strtotime().

0

попробовать без +0000 части:

$d=strtotime("10-May-2016 10:13:24"); echo "Created date is " . date("Y-m-d h:i:sa", $d);

Смежные вопросы