我试图将当前时区的时间转换为UTC时间,以及将UTC时间转换为当前时区的时间。
这是我所做的:
$schedule_date = new DateTime($triggerOn, new DateTimeZone('UTC') );
$triggerOn = $schedule_date->format('Y-m-d H:i:s');
echo $triggerOn;
输出值不会改变,只有格式会发生变化。
字符串$triggerOn
是根据America/Los_Angeles
时区生成的。
这是我的字符串在之前和之后的样子:
BEFORE 04/01/2013 03:08 PM
AFTER 2013-04-01 15:08:00
问题在于DateTime无法转换为UTC。
$triggerOn
传递给new DateTime()
之前,它包含什么内容? - Joshua Burns"04/01/2013 03:08 PM"
如何包含 "America/Los_Angeles" 的信息呢?请具体说明。 - Fabian Schmengler"04/01/2013 03:08 PM America/Los_Angeles"
。或者"04/01/2013 03:08 PM -0700"
(我不确定DateTime构造函数如何解析时区标识符)。但是Mike的解决方案可能更适合您。 - Fabian Schmengler