我们正在设计一个人们可以发表评论的小型应用程序。
此应用程序的用户可以在世界任何地方。其他人可以查看一个人的评论。
出现问题。如果今天印度有人发表评论,那么我会存储评论的日期和时间,从本地机器中挑选。
然而,评论如果由美国某人查看,那么根据美国用户的日期和时间可能会出现在将来。
或者,我可以在我们的服务器上使用时间。我们的服务器在北卡罗来纳州。
因此,当某个印度今天发表评论时,评论可以存储在数据库中的日期可能是昨天。
所以我无法理解我应该在数据库中存储的日期,以及如何显示针对本地日期和时间更正的日期和时间?
答案 0 :(得分:3)
您几乎肯定希望以UTC格式存储数据。然后,您在本地时区显示用户的时间,因此将来似乎永远不会出现。世界各地的不同人会看到同一评论的不同时间,但它总是代表相同的“绝对”时间。
您可能还想考虑在最后一天使用 relative 次来评论 - 例如“5分钟前”而不是完整的日期/时间。
使用UTC有许多优点:
答案 1 :(得分:-1)
您应该使用当地时间的服务器将时间存储在数据库中。在设置用户时,您应该让他们设置他们的时区,或者您可以通过JavaScript检测它(虽然不是非常可靠)。
有人发表评论后,您可以将其转换为本地服务器时间并存储。
当有人查看评论时,您可以使用他们的时区从服务器时区转换为他们自己的时区,以便他们看到正确的时间。
关键是为每个用户存储时区。