您的位置:

JavaScript生成时间戳详解

时间戳是指某个时间点相对于某个固定时间的计时值,是一个长整数,通常是1970年1月1日00:00:00(UTC)起至现在的毫秒数。在Web开发中,经常需要使用时间戳,如用于存储时间,计算时间差等等。在JavaScript中,可以通过多种方式生成时间戳。

一、Date对象生成时间戳


// 获取当前时间戳
var timestamp = new Date().getTime();
console.log(timestamp); // 输出当前时间毫秒数

通过获取Date对象的getTime()方法,可以得到当前时间的毫秒数。如果需要获取指定时间的时间戳,可以传入该时间的年、月、日等参数,如下所示:


var timestamp = new Date(2022, 0, 1, 0, 0, 0).getTime();
console.log(timestamp); // 输出2022年1月1日零点的毫秒数

此外,还可以使用Date对象的valueOf()方法生成当前时间的时间戳:


var timestamp = (new Date()).valueOf();
console.log(timestamp); // 输出当前时间毫秒数

二、new Date().toISOString()生成时间戳


// 获取当前时间的ISO格式字符串
var isoStr = new Date().toISOString();
console.log(isoStr); // 输出形如"2022-05-25T07:56:20.206Z"的字符串

// 将ISO格式字符串转换为毫秒数时间戳
var timestamp = (new Date(isoStr)).getTime();
console.log(timestamp); // 输出当前时间毫秒数

通过使用Date对象的toISOString()方法,可以获得当前时间的ISO格式字符串。将该字符串传入Date对象的构造函数,即可获得该时间的时间戳。

三、Math对象生成时间戳


var timestamp = Math.floor(Date.now());
console.log(timestamp); // 输出当前时间毫秒数

通过使用Date.now()方法获取当前时间的毫秒数,并结合Math.floor()方法向下取整,即可得到当前时间的时间戳。

四、performance对象生成时间戳


var timestamp = performance.now();
console.log(timestamp); // 输出当前时间相对于navigationStart的毫秒数

通过使用performance对象的now()方法,可以获取当前时间相对于网页开始加载的时间(即navigationStart)的毫秒数。需要注意的是,performance.now()返回的值精度高,但浏览器不一定支持。

五、总结

通过本文的介绍,我们学习了JavaScript中生成时间戳的几种方式,包括使用Date对象、new Date().toISOString()方法、Math对象和performance对象。其中,使用Date对象生成时间戳是最常用的方式,而其他方法则可以根据需要选择使用。