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

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

MDN describes it as:

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

而W3Schools describes it为:

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

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

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

秒 . 不是毫秒,由 Date.now() 返回 . 所以我不能把它称为"unix time format" .


Does the "number representing the milliseconds elapsed since the UNIX epoch" time format have a more concise name?

回答(1)

3 years ago

通常来说,如果您只是说"Unix Time"或"Unix Timestamp",则暗示您以秒为单位说话 . 但是,请理解POSIX规范实际上并未使用这些术语 . 相反,它具体说"Seconds Since the Epoch",在section 4.16中定义,并在整个规范中使用 . 我们称之为"Unix Time"只是一种口语化 .

section 20.3.1.1 of version 8.0 of the ECMAScript specification中,时间戳不是"milliseconds since 01 January, 1970 UTC"以外的术语 .

因此,在引用JavaScript(以及其他地方)中使用的时间戳时,您可以将其称为"Milliseconds Since the (Unix) Epoch",或"Unix Time in Milliseconds"或"Unix Timestamp in Milliseconds" . There is no universally recognized colloquial term or standard term that is more concise.

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

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

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