0

如何正确存储时间,以便以后可以使用用户定义的时区更改时区?您通常如何使用 DateTime 类执行此操作?

例如:

您运行一个论坛脚本。

您的服务器的当地时间是美国

用户 A 来自欧盟

用户 B 来自日本

用户 A 根据他在欧盟的当地时间发布并查看时间。

用户 B 在日本当地时间看到用户 A 的帖子。

我的问题是您应该存储时间的时区。您通常如何使用 DateTime 类来做到这一点?

4

1 回答 1

0

以 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");

将为用户产生正确的日期/时间。

于 2012-07-28T19:02:16.367 回答