0

我有一个应用程序,说最终用户可能来自任何国家,但是当他执行某些操作时,我希望日期显示在特定时区。

我想将它插入数据库,所以我使用 date_default_timezone_set(''); 与日期()

这是正确的方法还是我应该使用 gmdate() 并添加时区。

谢谢

4

2 回答 2

1

不,不要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 对象,然后应用时区。这种方式干净得多。

于 2012-11-04T04:11:02.060 回答
0

如果你想要格林威治标准时间,我认为你应该使用正确的时区作为Europe/London

  date_default_timezone_set('Europe/London');
于 2012-11-04T04:11:53.557 回答