Vic*_*hou 5 javascript browser node.js
假设我有一个在纽约运行的 Node.js 服务器,并且有一个客户端使用 Web 浏览器从加利福尼亚连接到它。我如何合理地期望从客户端调用的 Date.now() 与从服务器上的 node.js 调用的 Date.now() 相匹配,在大约 50-100 毫秒内(假设它们在完全相同的时刻被调用)?理论上,Date.now() 在机器和时区之间应该始终保持一致,因为 Date.now() “返回自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的毫秒数”,对吧?
不,您不一定假设客户端和服务器时间是同步的。
原因之一是Date.now()基于用户操作系统的系统时间。你无法控制这一点,时间可能是正确的,也可能有一点偏差,甚至完全错误。
你可以自己尝试一下:
> Date.now()
1466809144962
> Date.now()
1403650777388
Run Code Online (Sandbox Code Playgroud)
我跑了Date.now()两次,一次是在 Windows 中设置了正确的时间。然后我将系统时钟的年份更改为2014年并Date.now()再次运行。
切勿依赖未经服务器端验证的用户控制下的信息的正确性。
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |