我想使用shell来获取纪元时间,然后在html页面上使用javascript来获取另一个纪元时间,然后获取它们之间的差异,但我担心不同脚本之间的纪元时间可能不同步,所以这种差异是无用的
所以我想知道,如果我同时使用 shell 和 javascript 来获取 epoch tiem,结果是否相同?如果不是,差异有多大?
谢谢!
我想使用shell来获取纪元时间,然后在html页面上使用javascript来获取另一个纪元时间,然后获取它们之间的差异,但我担心不同脚本之间的纪元时间可能不同步,所以这种差异是无用的
所以我想知道,如果我同时使用 shell 和 javascript 来获取 epoch tiem,结果是否相同?如果不是,差异有多大?
谢谢!
如果您的意思是自 Unix 纪元 (1970-01-01T00:00:00Z) 以来的秒数,则它受此定义的约束。您应该能够看到的唯一差异是由以下原因引起的:
并且可能还有:
根据您需要的时间分辨率,其中一些不是问题。我的猜测是,如果您不需要比 1s 更精细的粒度,那么您应该会更好(在同一台机器上)。
*) 还要注意,在单核系统上,你不能真正从不同的系统调用中获得相同的时间(至少在 ns 分辨率下),除非内核缓存它,因为它们必须一个接一个地发生。
自 1970 年 1 月 1 日 UTC 以来,时间在 ECMAScript 中以毫秒为单位进行测量。在时间值中,闰秒被忽略。假设每天正好有 86,400,000 毫秒。
所以,是的,每个遵循标准的 JavaScript 实现都必须返回完全相同的值,并自行处理任何物理时钟的怪癖。除非系统时钟设置错误,否则您将在任何地方拥有相同的值。
请注意,其他语言和系统中“纪元”和“秒后”的定义可能不同(至少大多数其他系统使用秒,而不是毫秒,并且最经常考虑闰秒),所以你不能保证 JS时间,即使除以 1000 也会匹配来自另一个平台或操作系统的时间戳。