什么是JavaScript Date.now()时间格式?

时间:2017-08-02 12:57:18

标签: javascript date time epoch

我想知道在我的文档中写些什么。

MDN describes it as:

  

一个数字,表示自UNIX纪元以来经过的毫秒数。

W3Schools describes it为:

  

自1970/01/01以来的毫秒数

但是,这些只是 description Unix time的维基百科页面指出:

  

Unix时间是用于描述时间瞬间的系统,定义为自1970年1月1日星期四00:00:00协调世界时(UTC)以来经过的的数量[。 ..]

秒。不是毫秒,由Date.now()返回。所以我无法真正称之为" unix时间格式"同样。

"数字是否表示自UNIX纪元以来经过的毫秒数#34;时间格式有更简洁的名称?

1 个答案:

答案 0 :(得分:5)

一般来说,如果你只是说" Unix Time"或" Unix时间戳",暗示您以秒为单位说话。但是,请理解POSIX规范实际上并未使用这些术语。相反,它特别说明了自section 4.16中定义的时代以来的第二个"并在整个规范中使用。我们称之为" Unix Time"根本就是一种口语化。

section 20.3.1.1 of version 8.0 of the ECMAScript specification中,时间戳没有给出自1970年1月1日以来的"毫秒以来的术语和#34;。

因此,在引用JavaScript(以及其他地方)中使用的时间戳时,您可以自由地调用它"毫秒自(Unix)时代"或" Unix时间以来毫秒",或" Unix时间戳,以毫秒为单位"。 没有普遍认可的口语术语或标准术语更简洁。

关于这个问题的其他几点:

  • 您提供的W3Schools链接上的文字是一个重要的错误,因为它没有指定UTC。由于Unix Epoch是根据UTC定义的,因此从它派生的所有时间戳都是基于UTC的。

  • 有些人可能会将这些时间戳称为"纪元时间"。但是,这是荒谬的。请避免使用此术语,因为它意味着时间值本身就是一个时代。只有0值才能被视为时代。有人可能会说"基于时代的时间",但即便如此,还有一个问题是"哪个时代?"。虽然Unix时代很常见,但有multiple different epochs used in computing