0

我使用 UTC_TIMESTAMP() 在我的数据库中存储时间戳。

我想根据用户选择的时区输出它们。我尝试编写一个小函数来执行此操作,但是,它不能正确输出。

// Date/time converter
function convertTZ($date, $tz, $tzFormat)
{
$date = new DateTime($date);
$date->setTimezone(new DateTimeZone($tz));

return $date->format($tzFormat);
}

echo $_SESSION['dtCurrLogin'].'<br />';
echo convertTZ($_SESSION['dtCurrLogin'], 'UTC', 'F j, Y @ g:i:s a e');

dtCurrLogin 来自 db = 2013-09-12 01:23:45

以上输出:

2013 年 9 月 12 日 2013 年 9 月 12 日 01:23:45 @ UTC 时间上午 5:23:45

显然,当我从 UTC 转到 UTC 时,这是不正确的,所以它们应该是相等的。如果我更改为输出 EST,那么它会显示凌晨 1:23:45,但当然这也不正确。

4

1 回答 1

0

没有意识到我需要指定传入的时区...使用以下对我有用...

function convertTZ($date_time, $from_tz, $to_tz, $format_tz)
{
$time_object = new DateTime($date_time, new DateTimeZone($from_tz));
$time_object->setTimezone(new DateTimeZone($to_tz));
return $time_object->format($format_tz);
}
于 2013-09-12T04:59:50.710 回答