JS獲取當(dāng)前時(shí)間戳是很常用的功能,它可以用于記錄某個(gè)事件的發(fā)生時(shí)間,或者計(jì)算某個(gè)操作的耗時(shí)等等。在本文中,我們將從多個(gè)角度對(duì)JS獲取當(dāng)前時(shí)間戳的方法進(jìn)行詳細(xì)闡述,為讀者提供全面的參考。
一、new Date().getTime()
在JS中,可以使用new Date()方法獲取當(dāng)前時(shí)間的Date對(duì)象,然后再調(diào)用getTime()方法獲取對(duì)應(yīng)的時(shí)間戳。示例代碼如下:
const timeStamp = new Date().getTime();
console.log(timeStamp);
通過(guò)上述代碼,我們可以很方便地獲取當(dāng)前的時(shí)間戳。不過(guò)需要注意的是,由于getTime()方法返回的是毫秒級(jí)別的時(shí)間戳,因此需要將其除以1000來(lái)得到秒級(jí)別的時(shí)間戳。
二、Date.now()
除了使用new Date()方法,還可以使用Date.now()方法來(lái)獲取當(dāng)前時(shí)間的時(shí)間戳。它比new Date()方法更加簡(jiǎn)潔。示例代碼如下:
const timeStamp = Date.now();
console.log(timeStamp);
由于Date.now()方法返回的也是毫秒級(jí)別的時(shí)間戳,因此同樣需要進(jìn)行除以1000的操作來(lái)獲取秒級(jí)別的時(shí)間戳。
三、performance.now()
performance.now()方法是瀏覽器提供的性能監(jiān)測(cè)API,它的返回值為從頁(yè)面加載開始到調(diào)用該方法的時(shí)間間隔,單位為毫秒級(jí)別。因此,可以通過(guò)該方法的返回值來(lái)獲取當(dāng)前的時(shí)間戳。示例代碼如下:
const timeStamp = performance.now();
console.log(timeStamp);
需要注意的是,performance.now()方法返回的時(shí)間戳沒有固定參照點(diǎn),即該方法的返回值與系統(tǒng)時(shí)間和日期無(wú)關(guān)。
四、+new Date()
還可以使用+new Date()的方式來(lái)獲取當(dāng)前時(shí)間戳。在JS中,將一個(gè)Date對(duì)象使用“+”號(hào)進(jìn)行轉(zhuǎn)換,就可以得到對(duì)應(yīng)的時(shí)間戳。示例代碼如下:
const timeStamp = +new Date();
console.log(timeStamp);
與其他方法相比,該方法的代碼量最少,同時(shí)也比較簡(jiǎn)潔,因此一些高手經(jīng)常使用這種方式來(lái)獲取時(shí)間戳。
五、Math.floor(Date.now() / 1000)
在需要獲取秒級(jí)別的時(shí)間戳?xí)r,可以使用上述方法來(lái)實(shí)現(xiàn)。由于Date.now()返回的是毫秒級(jí)別的時(shí)間戳,因此需要將其除以1000并取整才能得到秒級(jí)別的時(shí)間戳。示例代碼如下:
const timeStamp = Math.floor(Date.now() / 1000);
console.log(timeStamp);
這種方法與前文介紹的方法類似,只是多了一個(gè)取整的操作,因此比較適用于需要處理秒級(jí)別時(shí)間戳的場(chǎng)景。
六、小結(jié)
在本文中,我們介紹了JS中獲取當(dāng)前時(shí)間戳的5種方法,它們分別是new Date().getTime()、Date.now()、performance.now()、+new Date()、Math.floor(Date.now() / 1000)。除了performance.now()方法,其他方法都可以用于獲取毫秒級(jí)別以及秒級(jí)別的時(shí)間戳,開發(fā)者可以根據(jù)具體需求來(lái)選擇合適的方法。