【问题标题】:Why do I need to multiply unix timestamps by 1000 in JavaScript?为什么我需要在 JavaScript 中将 unix 时间戳乘以 1000?
【发布时间】:2011-06-08 06:03:22
【问题描述】:

我确信我必须为 JavaScript 中的每个 Unix 时间戳添加三个零以获取正确的日期是有原因的。你能告诉我为什么吗?自纪元以来的毫秒数与秒数一样简单吗?

【问题讨论】:

  • 因为他们使用不同的计量单位?
  • 谢谢大家。我知道这一定是合乎逻辑的。我的下一个问题是考虑到半不一致的情况,毫秒与秒之间的设计决策可能是什么。
  • 您首先要否决有用的答案并接受最能解决您的问题的答案?
  • 当然!在等待了大部分时间之后(你不能马上接受答案),我离开了我的电脑一小段时间。
  • 最好的部分是,当我刚刚接受我的回答时,一些社区成员已经帮助我选择了:)

标签: javascript unix-timestamp timestamp


【解决方案1】:

因为 Javascript 内部使用毫秒,而普通的 UNIX 时间戳通常以秒为单位。

【讨论】:

  • 乘法不应该丢失任何东西,即使是 Javascript 奇怪的 not-a-float-is-a-float Number 类型也应该能够做到这一点而不会出现舍入错误。另一方面,除法显然至少会丢失毫秒部分,这是常规 UNIX 时间戳无论如何都无法表达的。
【解决方案2】:

Javascript 使用自纪元以来的毫秒数。 Unix 时间戳是自纪元以来的秒数。

因此,在 Javascript 中使用 Unix 时间戳之前需要将其转换为毫秒

【讨论】:

    【解决方案3】:

    Unix 时间是自纪元(1970 年 1 月 1 日)以来的秒数。在 Javascript 中,Date 对象期望自纪元以来的毫秒数,因此相差 1000 倍。

    【讨论】:

      猜你喜欢
      • 2022-10-25
      • 1970-01-01
      • 2014-01-16
      • 2010-10-25
      • 2015-09-08
      • 1970-01-01
      • 2014-03-31
      相关资源
      最近更新 更多