如何正确存储时间,以便以后可以使用用户定义的时区更改时区?您通常如何使用 DateTime 类执行此操作?
例如:
您运行一个论坛脚本。
您的服务器的当地时间是美国
用户 A 来自欧盟
用户 B 来自日本
用户 A 根据他在欧盟的当地时间发布并查看时间。
用户 B 在日本当地时间看到用户 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");
将为用户产生正确的日期/时间。