UTC_TIMESTAMP()到用户定义的时区?

时间:2013-09-12 02:35:08

标签: unix-timestamp timestamp-with-timezone

我使用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');

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

以上输出:

2013-09-12 01:23:45 2013年9月12日上午5:23:45 UTC

显然这是不正确的,因为我从UTC到UTC,所以他们应该是平等的。如果我改为输出EST然后它显示1:23:45 am,但当然这也不对。

1 个答案:

答案 0 :(得分: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);
}