在前端開發(fā)中,常常需要獲取當(dāng)前的時(shí)間戳。什么是時(shí)間戳呢?簡(jiǎn)而言之,時(shí)間戳就是指從1970年1月1日00:00:00 UTC(即格林威治標(biāo)準(zhǔn)時(shí)間)起至現(xiàn)在的總秒數(shù)。而在JavaScript中,我們可以通過(guò)一些方法來(lái)獲取當(dāng)前的時(shí)間戳。
要獲取當(dāng)前時(shí)間戳,最簡(jiǎn)單的方法是使用Date對(duì)象的getTime()方法。這個(gè)方法返回的是自1970年1月1日00:00:00 UTC起至當(dāng)前時(shí)間的毫秒數(shù)。我們只需要將這個(gè)毫秒數(shù)除以1000,就可以得到當(dāng)前時(shí)間的時(shí)間戳了。下面是示例代碼:
const timestamp = new Date().getTime();
const currentTimestamp = Math.floor(timestamp / 1000);
console.log(currentTimestamp); // 打印當(dāng)前時(shí)間戳
除了使用getTime()方法,我們還可以使用Date對(duì)象的valueOf()方法來(lái)獲取當(dāng)前時(shí)間的時(shí)間戳。它與getTime()方法返回的結(jié)果一樣,都是自1970年1月1日00:00:00 UTC起至當(dāng)前時(shí)間的毫秒數(shù)。下面是示例代碼:const timestamp = new Date().valueOf();
const currentTimestamp = Math.floor(timestamp / 1000);
console.log(currentTimestamp); // 打印當(dāng)前時(shí)間戳
另外,我們還可以使用Math對(duì)象的floor()方法來(lái)獲取當(dāng)前時(shí)間戳。它比較簡(jiǎn)單直接,只需要將當(dāng)前時(shí)間的毫秒數(shù)除以1000并向下取整即可。下面是示例代碼:const timestamp = Date.now();
const currentTimestamp = Math.floor(timestamp / 1000);
console.log(currentTimestamp); // 打印當(dāng)前時(shí)間戳
除了以上三種方法,我們還可以使用ES6中引入的新特性,即使用Date對(duì)象的靜態(tài)方法now()來(lái)獲取當(dāng)前時(shí)間戳。這個(gè)方法返回的也是自1970年1月1日00:00:00 UTC起至當(dāng)前時(shí)間的毫秒數(shù)。下面是示例代碼:const timestamp = Date.now();
const currentTimestamp = Math.floor(timestamp / 1000);
console.log(currentTimestamp); // 打印當(dāng)前時(shí)間戳
除了獲取當(dāng)前時(shí)間戳,我們還可以通過(guò)JavaScript來(lái)計(jì)算指定日期的時(shí)間戳。比如,我們可以通過(guò)Date對(duì)象的構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)指定日期的對(duì)象,然后調(diào)用getTime()方法或valueOf()方法來(lái)獲取它的時(shí)間戳。下面是示例代碼:const date = new Date('2022-01-01 00:00:00');
const timestamp = date.getTime(); // 或者 const timestamp = date.valueOf();
const currentTimestamp = Math.floor(timestamp / 1000);
console.log(currentTimestamp); // 打印2022年1月1日的時(shí)間戳
總結(jié)一下,JavaScript獲取時(shí)間戳的方法有很多種,比如使用Date對(duì)象的getTime()方法、valueOf()方法、Math對(duì)象的floor()方法、ES6的Date.now()靜態(tài)方法等等。我們只需要選擇最合適的方法來(lái)獲取當(dāng)前或指定日期的時(shí)間戳即可。