统一后端和前端日期,时间的最佳方法是什么?

时间:2017-10-30 10:53:16

标签: laravel reactjs api date time

我正在开发一个项目,其中后端API是在Laravel上构建的,而前端是在ReactJS上开发的。所以我的问题是从后端到前端分享日期和时间的最佳方式是什么?日期和时间非常重要,因为它是一个彩票应用程序,并且彩票倒计时应始终显示所有用户的相同时间,尽管他们的计算机上设置了日期和时间。另外,我根据时间做了一些数据过滤。

我想到的解决方案是为当前服务器设置端点日期和时间,每次React提取彩票时也会获取服务器上的当前时间。但我不认为这是一个很好的解决方案,有人可以提出更好的解决方案吗?

2 个答案:

答案 0 :(得分:0)

客户端和服务器都应该使用网络时钟进行自己的时间同步。但是服务器应该忽略客户端上记录的任何时间,因为它们可以伪造。

在服务器上收到数据时,应记录时间。这样,客户端和服务器之间的时间同步永远不会出现问题。时间通常以UTC时间记录在DB中,然后在客户端上进行偏移。 Laravel代码中的任何服务器端渲染都需要考虑请求数据的前端的时区。

答案 1 :(得分:0)

将日期存储为UTC时间戳(数字)或UTC日期(后端的日期/日期时间)。在Javascript中,这些UTC时间戳将转换为本地时间。或者,如果您确实需要根据登录的用户首选项显示时区,则可以使用类似的时刻。

请记住,您可以使用date.getTime()将客户端中的任何日期转换为UTC,以便在您需要从客户端创建内容时返回时间戳。

最后,让您的数据库存储日期为UTC是唯一重要的事情!