我花了最近两天的时间阅读这篇文章,最终结果就像我开始时一样困惑。我知道这个问题之前已被问过很多次,但我似乎无处可去。
问题是网上似乎有各种各样的建议和不同的建议,包括Stackoverflow。
所以,我希望有人可以一劳永逸地为我做好准备。
鉴于我可以完全控制服务器和代码,确保当用户执行某个操作时,正确的日期/时间存储在数据库中以及来自其他时区的任何用户的最佳方法是什么?获得相对于他们的时区返回的正确时间。
即。法国的用户A发表评论,他看到查看该评论时返回的正确时间。美国用户B查看用户A的评论,并将其发布的时间更正为他的时区。
我需要知道在mysql中存储日期/时间的最佳方法,以及检索此日期的最佳方法,并为任何给定的客户端正确显示它,无论他们身在何处。
我正在使用PHP 5.3和mySQL 5.5。
提前致谢!
答案 0 :(得分: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'));