我正在尝试将当前时间转换为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 = '04/01/2013 03:08 PM';
$user_tz = 'America/Los_Angeles';

echo $triggerOn; // echoes 04/01/2013 03:08 PM

$schedule_date = new DateTime($triggerOn, new DateTimeZone($user_tz) );
$schedule_date->setTimeZone(new DateTimeZone('UTC'));
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn; // echoes 2013-04-01 22:08:00

关于php - 如何使用DateTime类在PHP中的时区之间进行转换?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15625834/

10-12 00:05