将datetime转换为GMT时间戳

时间:2016-07-09 17:06:07

标签: php datetime datetime-format

我需要找到一种方法将用户指定的日期和时间转换为GMT时间戳。

按照Mahdi here的回答,我使用以下代码来转换原型

$date = new DateTime("09 Jul 2016 18:00:00");
echo gmdate('Y-m-d H:i:s', $date->getTimestamp());

返回

  

2016-07-09 16:00:00

回应应该是什么

  

2016-07-09 17:00:00

因为通过使用其他来源我已经知道GMT时间比我住的当地时间晚了1小时(英国)。

为什么会出现这种奇特的行为?

1 个答案:

答案 0 :(得分:0)

您永远不会将时区设置为UTC。此外,没有必要将DateTime功能与其他PHP日期函数混合,因为DateTime具有您需要的所有工具。

$date = new DateTime("09 Jul 2016 18:00:00", new DateTimeZone('Europe/London'));
$date->setTimezone(new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:s');

Demo