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

Hri*_*dov 3 javascript time date epoch

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

MDN 将其描述为:

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

虽然W3Schools 将其描述为:

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

但是,这些只是描述.Unix时间的维基百科页面说明:

Unix时间是用于描述在瞬间的时间,定义为的数目的系统因为00:00:00协调通用时间(UTC)起已经过的,周四,1970年1月1日[...]

秒.不是毫秒,如返回Date.now().所以我不能把它称为"unix时间格式".


"表示自UNIX纪元以来经过的毫秒数"的数字是否具有更简洁的名称?

Mat*_*int 5

通常来说,如果您只是说"Unix时间"或"Unix时间戳",则暗示您以秒为单位说话.但是,请理解POSIX规范实际上并未使用这些术语.相反,它特别说明了"自大纪元以来的秒",在4.16节中定义,并在整个规范中使用.我们称之为"Unix时间"只是一种口语化.

ECMAScript规范8.0版的第20.3.1.1节中,时间戳没有给出"自UTC时间1970年1月1日以来毫秒"以外的术语.

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

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

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

  • 有些人可能将这些时间戳称为"纪元时间".但是,这是荒谬的.请避免使用此术语,因为它意味着时间值本身就是一个时代.只有0价值可以被认为是时代.人们可能会说"以纪元为基础的时间",但即使在那时,也存在"哪个时代?"的问题.虽然Unix时代很常见,但计算中使用了多个不同的时期.