来自客户端的时间戳

时间:2014-01-27 03:25:17

标签: javascript php jquery database

我正在开发一个即时消息应用程序,该应用程序在数据库中记录每条消息,其中包含消息ID,消息内容和排序时间戳的列。

我一直在插入数据库之前使用PHP的time()函数添加时间戳,但是我发现这可能会导致问题。如果用户快速提交两条或更多条消息,则服务器可能无序处理它们并在数据库中混淆它们。

我正在考虑使用javascript的Date.getTime()方法。这样,时间戳记录了用户提交消息的时间,而不是完成处理的时间(希望这两个数字不是 不同)。

这引出了几个问题:

  • 可以操纵数据。我必须仍然使用PHP的time()函数,只有在彼此相隔一分钟左右才能提交(这不是一个完美的解决方案)。
  • 老实说,我不知道计算机的时间是如何同步的。如果用户在中国,提交的时间是多少?

我确信这是一个一直处理的问题。有什么样的解决方案?

1 个答案:

答案 0 :(得分:5)

计算机时间没有很好地同步 - 你的应用程序绝对不应该依赖于此。

我心中的合理解决方案:

  • 仅使用客户端时间戳来确定客户端提交消息的顺序。
  • 将服务器时间戳用于其他所有内容

另请注意,客户端时间戳可以在任何时区(并且用户可以更改其时区),因此客户端时间实际上仅用于与来自同一客户端的其他时间戳进行比较