我有一个应用程序,说最终用户可能来自任何国家,但是当他执行某些操作时,我希望日期显示在特定时区。
我想将它插入数据库,所以我使用 date_default_timezone_set(''); 与日期()
这是正确的方法还是我应该使用 gmdate() 并添加时区。
谢谢
我有一个应用程序,说最终用户可能来自任何国家,但是当他执行某些操作时,我希望日期显示在特定时区。
我想将它插入数据库,所以我使用 date_default_timezone_set(''); 与日期()
这是正确的方法还是我应该使用 gmdate() 并添加时区。
谢谢
不,不要date_default_timezone_set()
用于时区转换。这可能会产生意想不到的副作用。
相反,使用这个:
$tz = new DateTimeZone('America/Los_Angeles');
$date = new DateTime('Thu, 31 Mar 2011 02:05:59 GMT');
$date->setTimeZone($tz);
echo $date->format('l F j Y g:i:s A I')."\n";
请注意,您正在使用 UTC 时间创建 DateTime 对象,然后应用时区。这种方式干净得多。
如果你想要格林威治标准时间,我认为你应该使用正确的时区作为Europe/London
date_default_timezone_set('Europe/London');