如何正确存储时间,以便以后可以使用用户定义的时区更改时区?使用DateTime类通常是如何做到这一点的?
例如:
你运行了一个论坛脚本。
您的服务器的本地时间是美国
用户A来自欧盟
用户B来自JP
用户A根据他在欧盟的当地时间发布并查看时间。
用户B在JP.的本地时间看到用户A的帖子
我的问题是你应该把时间存储在哪个时区。使用DateTime类通常是如何做到这一点的?
以UTC格式保存时间,以实现稳定性和一致性。
每个用户的偏好都应该以PHP的已知时区的形式保存在数据库中。
然后,在显示时,将时间更改为正确的时区。
$time = "13:37 2012-12-21";
$datetime = new DateTime($time);
$user_timezone = new DateTimeZone($user_timezone_from_the_database);
$datetime->setTimezone($user_timezone);
$datetime->format("H:i:s Y-m-d");
将为用户提供正确的日期/时间。