2014-11-02 3 views
1

Я форматирование даты на PHP, используя следующий код:Получение другой даты по форматированию

$date = "2014-11-01"; 
$date_formatted = gmdate("Y-m-d", strtotime($date)); 

Когда я печатаю их, форматированная дата идет день назад. Я был очень удивлен. Я не просто ищу решение (есть много таких простых вещей). Я хотел бы знать, как это произошло.

echo $date . " ---> " . $date_formatted;  
//Displays: 2014-11-01 ---> 2014-10-31 
+0

Мне кажется: http://codepad.org/rTXAEHLT –

+1

Смотрите это: http://codepad.org/L7YzM3jN – Evert

ответ

6

Это потому, что вы используете gmdate. Это даст вам дату в GMT на основе поставленной метки времени.

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

Чтобы исправить это, используйте date вместо gmdate или установите часовой пояс вашей системы в UTC.

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