我想要一个表示当前日期和时间的数字,比如Unix时间戳。
当前回答
JavaScript的工作时间是从纪元开始的毫秒数,而大多数其他语言的工作时间都是秒。您可以使用毫秒来工作,但只要您传递一个值来表示PHP,PHP本机函数可能就会失败。所以,为了确保我总是使用秒,而不是毫秒。
这将为您提供Unix时间戳(以秒为单位):
var unix = Math.round(+new Date()/1000);
这将为您提供自纪元以来的毫秒数(而不是Unix时间戳):
var milliseconds = new Date().getTime();
其他回答
JavaScript的工作时间是从纪元开始的毫秒数,而大多数其他语言的工作时间都是秒。您可以使用毫秒来工作,但只要您传递一个值来表示PHP,PHP本机函数可能就会失败。所以,为了确保我总是使用秒,而不是毫秒。
这将为您提供Unix时间戳(以秒为单位):
var unix = Math.round(+new Date()/1000);
这将为您提供自纪元以来的毫秒数(而不是Unix时间戳):
var milliseconds = new Date().getTime();
更简单的方法:
var timeStamp=event.timestamp || new Date().getTime();
下面是一个生成时间戳的简单函数,格式为:mm/dd/yy hh:mi:ss
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' +
(now.getDate()) + '/' +
now.getFullYear() + " " +
now.getHours() + ':' +
((now.getMinutes() < 10)
? ("0" + now.getMinutes())
: (now.getMinutes())) + ':' +
((now.getSeconds() < 10)
? ("0" + now.getSeconds())
: (now.getSeconds())));
}
有很多方法可以做到这一点。
Date.now()
new Date().getTime()
new Date().valueOf()
要获取以秒为单位的时间戳,请使用以下方法进行转换:
Math.floor(Date.now() / 1000)
建议的正确方法是Number(new Date()),就代码可读性而言,
此外,UglifyJS和Google闭包编译器将降低已解析代码逻辑树的复杂性(如果您使用其中一个来隐藏/缩小代码)。
对于时间分辨率较低的Unix时间戳,只需将当前数字除以1000,保持整数。