我正在使用此代码:
$dtzone = @new DateTimeZone($this->session->userdata('timezone'));
$time = date('r',$this->session->userdata('old_last_login'));
$dtime = new DateTime($time);
@$dtime->setTimeZone($dtzone);
它在所有浏览器中都可以正常工作,除了在我得到消息的Firefox中:
Fatal error: Uncaught exception 'Exception' with message 'DateTimeZone::__construct()
[<a href='datetimezone.--construct'>datetimezone.--construct</a>]: Unknown or bad timezone ()'
in /home/example.loc/public_html/application/views/_partials/top.php:7 Stack trace: #0
/home/example.loc/public_html/application/views/_partials/top.php(7): DateTimeZone->__construct('') ...
似乎这是错误消息中最重要的部分:未知或错误的时区()
我不明白为什么它在所有浏览器中都可以,以及为什么它在Firefox中不起作用。
时区已设定。例如to: America / Montevideo
对我而言,似乎firefox以某种无效格式存储cookie,因为当我将代码改为此时:
$dtzone = @new DateTimeZone('America/Montevideo');
它有效。