1

在过去的两天里,我一直在阅读这篇文章,最终还是像开始时一样困惑。我知道这个问题之前已经被问过很多次,但我似乎无处可去。

问题是似乎有各种各样的建议和不同的建议在整个网络上给出,包括在 Stackoverflow 上。

所以,我希望有人能一劳永逸地纠正我。

鉴于我可以完全控制服务器和代码,确保当用户执行特定操作时正确的日期/时间存储在数据库中并且来自其他时区的任何用户也得到正确的最佳方法是什么返回的时间,相对于他们的时区。

即法国的用户 A 发表评论,他在查看该评论时看到返回的正确时间。美国的用户 B 查看用户 A 的评论,并看到发布时间已更正到他的时区。

我需要知道将日期/时间存储在 mysql 中的最佳方法,以及检索此日期并为世界上任何给定客户端正确显示它的最佳方法。

我正在使用 PHP 5.3 和 mySQL 5.5。

提前致谢!

4

1 回答 1

2

您可以将日期存储为 UTC:

$utctime = gmdate('Y-m-d H:i', date('U')); // get timestamp and convert it to UTC

并用他的偏移量显示给用户,你可以问他他有哪个时区,或者你可以尝试使用 AJAX 或基于他的 IP 来获取它。

假设他的时区是 +7 小时:

$usertime = date('Y-m-d H:i', strtotime($utctime)+(7*60*60));

您可以存储为时间戳:$utctime = gmdate('U', date('U'));

于 2012-09-13T07:14:50.873 回答