2014-04-30 3 views
0

Я пытаюсь скрывать время даты до часов, чтобы сегодняшняя дата и время совпадали с датой и временем базы данных.Невозможно преобразовать DateTime в Hours

date_default_timezone_set("Pacific/Fiji"); 
today = date('Y-m-d H:i'); // Returns 2014-05-01 11:01 

$date = DateTime::createFromFormat('Y-m-d h:i', '2014-05-02 11:05'); 
echo $date->format('Y-m-d H:i'); // Returns 2014-05-02 11:05 

Что я делаю неправильно в этом коде, что его возвращение 2014-05-02 11:05 в то время как он должен вернуть 2014-05-01 23:05

ответ

0

Вы спасли 2014-05-02 11:05 в Фиджи часовой пояс на $date. После этого вы показываете дату в часовом поясе Фиджи, поэтому, конечно, никаких изменений не происходит.

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

$tzFiji = new DateTimeZone('Pacific/Fiji'); 
$tzBerlin = new DateTimeZone('Europe/Berlin'); 
$tzCurrent = new DateTimeZone(date_default_timezone_get()); 

$date = DateTime::createFromFormat('Y-m-d h:i', '2014-05-02 11:05', $tzFiji); 

echo $date->format('Y-m-d H:i'); # date in Fiji's timezone 
$date->setTimezone($tzBerlin); 
echo $date->format('Y-m-d H:i'); # date in Berlin's timezone 
$date->setTimezone($tzCurrent); 
echo $date->format('Y-m-d H:i'); # date in php's currently set timezone 
Смежные вопросы