【问题标题】:How to get time in milliseconds since the unix epoch in Javascript? [duplicate]自Javascript中的unix时代以来,如何以毫秒为单位获取时间? [复制]
【发布时间】:2012-03-23 11:08:57
【问题描述】:

可能重复:
How do you get a timestamp in JavaScript?
Calculating milliseconds from epoch

如何在 Javascript 中获取当前的 epoch 时间?基本上是自 1970-01-01 午夜以来的毫秒数。

【问题讨论】:

  • 请注意,这个问题(以及一些重复问题)要求自纪元以来的毫秒数。虽然 JavaScript 为您提供了这一点,但请注意,标准 Unix 纪元通常以秒为单位(您从 JS 获得的值的 1/1000)。
  • new Date/1E3|0 - 实例化 Date,强制转换为数字,除以 1000 和下限。
  • @CamiloMartin 你应该写一个答案。这是最好的。
  • @贾斯汀谢谢!但请注意,自从我写了那篇文章以来,IE8 已经成为那种你可能已经准备好对它说“不”的浏览器了。如果您准备放弃 IE8 支持,请使用:Date.now()(否则很容易调整)。

标签: javascript


【解决方案1】:

这样就可以了:-

new Date().valueOf() 

【讨论】:

  • 你弄错括号了吗?查看来自 MarkHu 的(已拒绝)edit suggestion
  • 不,它正在工作;你可以查看this great answer解释原因。顺便说一句,这个表达式可以简化为 +new Date - 出于同样的原因。
  • 这会在你需要做 (new DateTime)->format('U') 的 php 中炸毁,但没有括号 js 是可以的
【解决方案2】:

Date.now() 返回一个以毫秒为单位的 unix 时间戳。

const now = Date.now(); // Unix timestamp in milliseconds
console.log( now );

在 ECMAScript5(即 Internet Explorer 8 和更早版本)之前,您需要构造一个 Date 对象,有多种方法可以从中获取以毫秒为单位的 unix 时间戳:

console.log( +new Date );
console.log( (new Date).getTime() );
console.log( (new Date).valueOf() );

【讨论】:

  • 已经搜索了半个小时..围绕这条简单的线有很多错误信息..
  • 对于没有毫秒的完美 Unix 时间戳,请执行以下操作: var milliseconds = Math.floor((new Date).getTime()/1000);
  • @RaySuelzer 它根据运行机器的系统时钟获取时间,所以它完全取决于它。
  • @grenoult 这在 Javascript 中的含义相同。将参数传递给构造函数时只需要括号。 ((new Date())new Date()(new Date) 在这种情况下都可以使用。使用你认为最易读的那个。
猜你喜欢
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多