我需要找到一种方法将用户指定的日期和时间转换为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小时(英国)。
为什么会出现这种奇特的行为?
答案 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');