我使用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,但当然这也不对。
答案 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);
}