JavaScript獲取和操作時(shí)間戳的用法詳解
前言
時(shí)間戳在編程中有著非常廣泛的應(yīng)用,比如記錄事件發(fā)生的時(shí)間、計(jì)算時(shí)間差、生成唯一的標(biāo)識符等等。理解時(shí)間戳的使用非常重要,今天我們將一起來探討如何在 JavaScript 中獲取和操作時(shí)間戳。?
一、什么是時(shí)間戳?
時(shí)間戳(Timestamp)是指自 1970年1月1日 00:00:00 UTC 到某個(gè)指定時(shí)間的毫秒數(shù)。它是計(jì)算機(jī)系統(tǒng)中最常用的時(shí)間表示方式。這個(gè)時(shí)間標(biāo)準(zhǔn)被稱為 Unix 時(shí)間戳 或 POSIX 時(shí)間戳。
二、JavaScript 獲取當(dāng)前時(shí)間戳
在 JavaScript 中,獲取當(dāng)前的時(shí)間戳非常簡單,通常有兩種常用的方法:
2.1 使用 Date.now() 獲取時(shí)間戳
Date.now() 返回的是自 1970 年 1 月 1 日 UTC 以來經(jīng)過的毫秒數(shù)。這是一個(gè)非常簡單且常用的獲取時(shí)間戳的方法。
示例:
const timestamp = Date.now(); console.log(timestamp); // 輸出當(dāng)前的時(shí)間戳(單位:毫秒)
2.2 使用 new Date().getTime() 獲取時(shí)間戳
new Date().getTime() 也返回當(dāng)前的時(shí)間戳,和 Date.now() 類似。兩者的區(qū)別在于,Date.now() 是靜態(tài)方法,而 new Date() 是實(shí)例化對象后調(diào)用。
示例:
const timestamp = new Date().getTime(); console.log(timestamp); // 輸出當(dāng)前的時(shí)間戳(單位:毫秒)
三、時(shí)間戳的應(yīng)用場景
3.1 獲取當(dāng)前時(shí)間并計(jì)算時(shí)間差
通過時(shí)間戳,你可以輕松計(jì)算兩個(gè)時(shí)間之間的差異。假設(shè)你需要計(jì)算某個(gè)任務(wù)的執(zhí)行時(shí)間,你可以記錄任務(wù)開始和結(jié)束時(shí)的時(shí)間戳,然后通過相減得到耗時(shí)。
示例:
// 任務(wù)開始時(shí)間
const start = Date.now();
// 模擬任務(wù)執(zhí)行
setTimeout(() => {
// 任務(wù)結(jié)束時(shí)間
const end = Date.now();
// 計(jì)算耗時(shí)(單位:毫秒)
const duration = end - start;
console.log(`任務(wù)執(zhí)行時(shí)間:${duration} 毫秒`);
}, 2000);
3.2 轉(zhuǎn)換時(shí)間戳為日期時(shí)間格式
時(shí)間戳通常是一個(gè)數(shù)字,但我們經(jīng)常需要將其轉(zhuǎn)換為易讀的日期格式。在 JavaScript 中,你可以使用 Date 對象將時(shí)間戳轉(zhuǎn)換為日期。
示例:
const timestamp = Date.now(); const date = new Date(timestamp); console.log(date.toString()); // 輸出類似 "Sat Feb 23 2025 12:34:56 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)" 的日期格式
你也可以使用 toLocaleString() 方法將日期格式化為特定的本地格式。
const dateStr = date.toLocaleString(); console.log(dateStr); // 輸出類似 "2025/2/23 下午12:34:56" 的本地日期時(shí)間格式
3.3 將日期時(shí)間轉(zhuǎn)換為時(shí)間戳
如果你有一個(gè)特定的日期,并希望將其轉(zhuǎn)換為時(shí)間戳,可以通過 Date.parse() 方法來實(shí)現(xiàn)。該方法將一個(gè)表示日期的字符串轉(zhuǎn)化為時(shí)間戳。
示例:
const dateStr = "2025-02-23T12:00:00"; const timestamp = Date.parse(dateStr); console.log(timestamp); // 輸出時(shí)間戳(單位:毫秒)
3.4 時(shí)間戳與計(jì)時(shí)器
時(shí)間戳還廣泛應(yīng)用于控制和記錄定時(shí)器(如 setTimeout 和 setInterval)的執(zhí)行時(shí)間。你可以利用時(shí)間戳計(jì)算任務(wù)間隔和延遲。
示例:
const start = Date.now();
setInterval(() => {
const elapsed = Date.now() - start;
console.log(`已運(yùn)行時(shí)間:${elapsed} 毫秒`);
}, 1000); // 每秒打印一次已運(yùn)行的時(shí)間
四、總結(jié)
時(shí)間戳在 JavaScript 中非常有用,常常用于記錄時(shí)間、計(jì)算時(shí)間差和處理異步操作。掌握如何獲取和操作時(shí)間戳,可以讓你更高效地進(jìn)行時(shí)間計(jì)算和時(shí)間相關(guān)的操作。
| 概念 | 說明 | 示例代碼 |
|---|---|---|
| 獲取當(dāng)前時(shí)間戳 | 使用 Date.now() 或 new Date().getTime() 獲取當(dāng)前時(shí)間的時(shí)間戳。 | const timestamp = Date.now(); |
| 計(jì)算時(shí)間差 | 通過記錄開始時(shí)間和結(jié)束時(shí)間的時(shí)間戳,計(jì)算時(shí)間差。 | const duration = end - start; |
| 時(shí)間戳轉(zhuǎn)換為日期格式 | 使用 new Date(timestamp) 將時(shí)間戳轉(zhuǎn)換為日期對象,然后格式化為字符串。 | const date = new Date(timestamp); console.log(date.toString()); |
| 日期轉(zhuǎn)換為時(shí)間戳 | 使用 Date.parse() 將日期字符串轉(zhuǎn)換為時(shí)間戳。 | const timestamp = Date.parse('2025-02-23T12:00:00'); |
| 時(shí)間戳與定時(shí)器的結(jié)合 | 使用時(shí)間戳與定時(shí)器(setTimeout / setInterval)結(jié)合來控制時(shí)間。 | setInterval(() => { const elapsed = Date.now() - start; }, 1000); |
希望通過這篇文章,你對 JavaScript 中的時(shí)間戳有了更清晰的了解。
附:倒計(jì)時(shí)抽獎(jiǎng)案例

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>簡單易用的倒計(jì)時(shí)js代碼</title>
<style>
*{ margin:0; padding:0; list-style:none;}
body{ font-size:18px; text-align:center;}
.time{ height:30px; padding:200px;}
</style>
</head>
<body>
<div class="time">
<span id="t_d">00天</span>
<span id="t_h">00時(shí)</span>
<span id="t_m">00分</span>
<span id="t_s">00秒</span>
</div>
<script>
function GetRTime(){
//雙十一倒計(jì)時(shí)抽獎(jiǎng)
var EndTime= new Date('2018/11/11 00:00:00');
var NowTime = new Date();
var t =EndTime.getTime() - NowTime.getTime();
var d=Math.floor(t/1000/60/60/24);
var h=Math.floor(t/1000/60/60%24);
var m=Math.floor(t/1000/60%60);
var s=Math.floor(t/1000%60);
document.getElementById("t_d").innerHTML = d + "天";
document.getElementById("t_h").innerHTML = h + "時(shí)";
document.getElementById("t_m").innerHTML = m + "分";
document.getElementById("t_s").innerHTML = s + "秒";
}
setInterval(GetRTime,0);
</script>
</body>
</html>
到此這篇關(guān)于JavaScript獲取和操作時(shí)間戳用法詳解的文章就介紹到這了,更多相關(guān)JS時(shí)間戳使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
HTML中的setCapture和releaseCapture使用介紹
setCapture函數(shù)的作用就是將后續(xù)的mouse事件都發(fā)送給這個(gè)對象,releaseCapture就是將鼠標(biāo)事件還回去,由 document、window、object之類的自行來處理。這樣就保證了在拖動的過程中,不會由于經(jīng)過了其它的元素而受到干擾2012-03-03
Javascript的各種節(jié)點(diǎn)操作實(shí)例演示代碼
實(shí)例演示對javascript的節(jié)點(diǎn)的各種操作。包括hasChildNodes(),removeChild(),appendChild(),replaceChild(),insertBefore(),cloneNode()等2012-06-06
微信小程序 scroll-view 水平滾動實(shí)現(xiàn)過程解析
這篇文章主要介紹了微信小程序 scroll-view 水平滾動實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
JS實(shí)現(xiàn)隨機(jī)點(diǎn)名器
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)隨機(jī)點(diǎn)名器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
JS中產(chǎn)生20位隨機(jī)數(shù)以0-9為例也可以是a-z A-Z
本節(jié)主要介紹了JS如何產(chǎn)生隨機(jī)數(shù),本例產(chǎn)生20位隨機(jī)數(shù)以0-9為例也可以是a-z A-Z,需要的朋友可以參考下2014-08-08
JavaScript如何實(shí)現(xiàn)元素全排列實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于JavaScript如何實(shí)現(xiàn)元素全排列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

