无法将DateTime转换为Hours


Cannot convert DateTime to 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

您将斐济时区的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