我想要一个表示当前日期和时间的数字,比如Unix时间戳。
当前回答
我强烈建议使用moment.js
moment().valueOf()
要获取自UNIX纪元以来的秒数,请执行
moment().unix()
也可以这样转换时间:
moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()
我一直这么做。没有双关语。
要在浏览器中使用moment.js:
<script src="moment.js"></script>
<script>
moment().valueOf();
</script>
有关更多详细信息,包括安装和使用MomentJS的其他方式,请参阅他们的文档
其他回答
console.log(newDate().valueOf());//返回自epoch以来的毫秒数
Date.getTime()方法可以稍微调整一下:
getTime方法返回的值是毫秒数自1970年1月1日00:00:00 UTC开始。
将结果除以1000得到Unix时间戳,必要时为floor:
(new Date).getTime() / 1000
Date.valueOf()方法在功能上等同于Date.getTime(),这使得可以对Date对象使用算术运算符来获得相同的结果。在我看来,这种方法会影响可读性。
对于lodash和下划线用户,请使用_.now。
var timestamp = _.now(); // in milliseconds
JavaScript的工作时间是从纪元开始的毫秒数,而大多数其他语言的工作时间都是秒。您可以使用毫秒来工作,但只要您传递一个值来表示PHP,PHP本机函数可能就会失败。所以,为了确保我总是使用秒,而不是毫秒。
这将为您提供Unix时间戳(以秒为单位):
var unix = Math.round(+new Date()/1000);
这将为您提供自纪元以来的毫秒数(而不是Unix时间戳):
var milliseconds = new Date().getTime();
如果用于日志记录,则可以使用ISOString
new Date().toISOString()
“2019-05-18T20:02:36.694Z”