当用户发布内容时,如何在我的应用中处理时区

时间:2017-03-25 20:01:18

标签: php laravel timezone usability

我正在创建一个用户可以发布文章的应用。如果日本有人在2017/03/25 09:00发表文章,我应该将文章的发布日期和时间设置为当时,还是应该将其设置为服务器时间?

如果美国某人进入该网站即将阅读该文章,那么该文章应该在何时公布?

如果我说2017/03/25 09:00对于美国的用户来说还没有发生这种情况,那将来会对他来说,我应该什么时候向来自世界另一端的人展示?

1 个答案:

答案 0 :(得分:0)

正如我所看到的,处理时间的更一致的方法是在内部仅使用UTC time(在实践中非常类似于GMT,此外,php gmt *函数实际上正在使用UTC时间),例如date /存储在持久存储(db等)中的时间,并使用用户时区向每个用户显示时间。

通过这种方式,您可以保持年表,简化设计和思考,并始终显示对用户有意义的时间,例如,他/此时区的时间。

在您的示例中,显示的时间并不重要,因为您将显示唯一的相关时间,例如,实际创建UTC的时间,只是翻译到每个用户的时区。 不用担心,时间总是在流逝,只要时间参考是一致的,没有人能看到没有发生的事情。如果有人在他的时钟上看到不同的时间并不重要,它仍然可以是同一时刻。

如果您在哪里与客人打交道,您可以使用地理位置和/或浏览器首选项对有关正确时区进行有根据的猜测。您仍然可以在视图中允许时区切换。

它也是一种简化模型的方法,因为使用单个时间参考可以简化基于时间的对象比较,并降低错过配置的风险(在任何地方设置一次)。

Carbon易于使用laravel,是一种处理日期/时间的便捷方式。