У меня свидание в этом формате Fri, 15 Jan 2016 15:14:10 +0800
и я хочу отображать время, как это 2016-01-15 15:14:10
,
То, что я пытался это:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d G:i:s',strtotime($test));
echo $t;
Но это отображает дату в этом формате: 2016-01-15 7:14:10
, так должно быть 2016-01-15 15:14:10
,
Как я могу это сделать?
использование H
вместо:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
ЧАС: 24-часовой формат часа с ведущими нулями от 00 до 23
G должен быть таким же, но без начальных нулей. Я подозреваю, что ваш PHP настроен на другой часовой пояс, чем +0800
, Можете ли вы подтвердить свой часовой пояс (date_default_timezone_get()
)?
ОП подтвердил, что его часовой пояс был установлен на UTC, и в этом случае он полностью маскирует то, что показывает 7 часов утра, а date
использует часовой пояс по умолчанию для PHP.
Если вы хотите «наследовать» часовой пояс, получая большую гибкость, вам следует переключиться на DateTime
:
echo (new DateTime($test))->format("Y-m-d H:i:s");
Других решений пока нет …