在过去的几个小时里,我一直在阅读这个主题,我想我已经掌握了它,但我想要一些确认。
情况
我希望加利福尼亚州的用户能够发布将存储在 MySQL 中的评论。然后,我希望德克萨斯州的用户能够查看评论,并将发布日期调整为他或她的时区。
建议的解决方案
存储
- 在应用程序启动时运行以下命令,以便所有日期函数都使用 UTC 时区:
date_default_timezone_set('UTC');
$Date = new DateTime();
以 UTC 获取具有当前日期和时间的 DateTime 对象。- 用于
$Date->format()
获取要插入 MySQL 中日期时间类型列的值。
显示
- 从 JavaScript 中获取用户的时区信息并将其存储在 cookie 中。
- 运行 MySQL SELECT 查询以检索日期时间列值。
$Date = new DateTime($row['time']);
用存储的 UTC 时间实例化一个 DateTime 对象。$Date->setTimezone(new DateTimeZone($userTimezone));
将 UTC 时间调整为用户的时区。- 显示使用
$Date->format();
这就是必须要做的事情的要点吗?我错过了更好的解决方案吗?谢谢你的帮助!