Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在具有不同脚本/程序的同一台机器上,历元时间是否相同_Javascript_Shell_Epoch - Fatal编程技术网

Javascript 在具有不同脚本/程序的同一台机器上,历元时间是否相同

Javascript 在具有不同脚本/程序的同一台机器上,历元时间是否相同,javascript,shell,epoch,Javascript,Shell,Epoch,我想用shell来获取epoch时间 然后在html页面上使用javascript来获得另一个划时代时间 然后找出它们之间的区别 但我担心不同脚本之间可能无法同步大纪元时间 所以这个差别是没有用的 所以我想知道,如果同时使用shell和javascript来获取epoch tiem 结果是否相同? 如果没有,差异有多大 谢谢 如果您指的是自Unix纪元(1970-01-01T00:00:00Z)以来的秒数,那么它就是由这个定义决定的。您应该能够看到的唯一差异是由以下原因造成的: 调用返回它的系

我想用shell来获取epoch时间 然后在html页面上使用javascript来获得另一个划时代时间 然后找出它们之间的区别 但我担心不同脚本之间可能无法同步大纪元时间 所以这个差别是没有用的

所以我想知道,如果同时使用shell和javascript来获取epoch tiem 结果是否相同? 如果没有,差异有多大


谢谢

如果您指的是自Unix纪元(1970-01-01T00:00:00Z)以来的秒数,那么它就是由这个定义决定的。您应该能够看到的唯一差异是由以下原因造成的:

  • 调用返回它的系统调用的不同时间*)
  • 不同系统上的非同步时钟
还有可能:

  • 不同处理器核/物理处理器上的非同步时钟
  • 对返回当前时间的函数的依赖于实现的处理(例如,JS引擎实现可能会在短时间内缓存该值,因为不必执行实际的系统调用,尽管我对此表示怀疑)
根据您需要的时间分辨率,其中一些不是问题。我的猜测是,如果您不需要比1更细的粒度,那么您应该比1更细(在同一台机器上)

*)还要注意的是,在单核系统上,您无法从不同的系统调用中获得相同的时间(至少在ns分辨率下),除非内核缓存它,因为它们必须一个接一个地发生。

根据:

自1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位 UTC。时间值中的闰秒将被忽略。假设有 正是每天86400000毫秒

所以,是的,每个遵循标准的JavaScript实现都必须返回完全相同的值,并自行处理任何物理时钟问题。除非系统时钟设置错误,否则在任何地方都会有相同的值


请注意,在其他语言和系统中,“epoch”和“seconds since”的定义可能会有所不同(至少大多数其他系统使用秒,而不是毫秒,并且通常考虑闰秒),因此您不能保证JS time(即使除以1000)与其他平台或操作系统的时间戳匹配

我猜他们会是一样的,但这是不可信的,因为浏览器可能会做一些奇怪的事情,或者用户可能会更改一些设置或其他东西。如果你只是使用服务器来获取你的划时代时间,那会好得多。我的意思是,如果javascript与shell脚本在同一台机器上运行,它们会是sameI吗?我知道你的意思。我想说的是,这些东西并不总是完全可靠的,因为不是每个人都遵守规范。大多数情况下,它们应该是相同的,是的。哦,理论有点深奥,所以如果我在同一台机器上使用shell脚本和javascript,我希望精度粒度在0.2秒或以下,可能吗?@user1769686我希望如此(实际上我相信它应该更符合ms级别)。但是请记住,由于计算机上的负载较高,特别是在显示页面的浏览器中,您有时很容易看到较大的延迟。