JavaScript中時(shí)間日期函數(shù)new?Date()詳解(5種獲取時(shí)間戳的函數(shù))
簡(jiǎn)介:
JavaScript 中的 new Date() 方法用于創(chuàng)建一個(gè)新的 Date 對(duì)象,該對(duì)象表示當(dāng)前日期和時(shí)間。Date 對(duì)象提供了許多方法和屬性,可以用于獲取和設(shè)置日期和時(shí)間信息。
new Date([year, month, day, hour, minute, second, millisecond])
其中,每個(gè)參數(shù)都是可選的。如果沒有指定參數(shù),則 new Date() 方法將創(chuàng)建一個(gè)表示當(dāng)前日期和時(shí)間的 Date 對(duì)象。
一、關(guān)于new Date()函數(shù);
首先創(chuàng)建一個(gè)表示當(dāng)前時(shí)間的 Date 對(duì)象 var nowTime = new Date(); console.log(nowTime); 控制臺(tái)輸出 Fri Nov 17 2023 10:41:58 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間) //獲取 Date 當(dāng)前時(shí)間 年月日時(shí)分秒 console.log(nowTime.toLocaleString()); //控制臺(tái)輸出 2023/11/17 10:41:58 //獲取 Date 當(dāng)前時(shí)間 年月日 console.log(nowTime.toLocaleDateString()); //控制臺(tái)輸出 2023/11/17 //獲取 Date 當(dāng)前時(shí)間 時(shí)分秒 console.log(nowTime.toLocaleTimeString()); //控制臺(tái)輸出 10:41:58 //獲取 Date 對(duì)象的年份 console.log(nowTime.getFullYear()); //控制臺(tái)輸出 2023 //獲取 Date 對(duì)象的月份(注意月份從0開始,所以使用時(shí)需要加1) console.log(nowTime.getMonth()); //控制臺(tái)輸出 11 //獲取 Date 對(duì)象的日期 console.log(nowTime.getDate()); //控制臺(tái)輸出 17 //獲取 Date 對(duì)象的小時(shí) console.log(nowTime.getHours()); //控制臺(tái)輸出 10 //獲取 Date 對(duì)象的分鐘 console.log(nowTime.getMinutes()); //控制臺(tái)輸出 41 //獲取 Date 對(duì)象的秒 console.log(nowTime.getSeconds()); //控制臺(tái)輸出 58 //獲取 Date 對(duì)象的毫秒 console.log(nowTime.getMilliseconds()); //控制臺(tái)輸出 917
二、獲取 Date 對(duì)象時(shí)間戳的五種方式;
1、new Date().getTime()方法 const timestamp1 = new Date().getTime(); console.log(timestamp1); //控制臺(tái)輸出 1700189060045 2、Date.now()方法 const timestamp2 = Date.now(); console.log(timestamp2); //控制臺(tái)輸出 1700189060045 3、Date.parse(new Date())方法 const timestamp3 = Date.parse(new Date()); console.log(timestamp3); //控制臺(tái)輸出 1700189060045 4、new Date()).valueOf()方法 const timestamp4 = new Date().valueOf(); console.log(timestamp4); //控制臺(tái)輸出 1700189060045 5、Number(new Date())方法 const timestamp5 = Number(new Date()); console.log(timestamp5); //控制臺(tái)輸出 1700189060045
三、Date 對(duì)象應(yīng)用實(shí)例
實(shí)例1:計(jì)算月份差
有時(shí)候,我們需要知道兩個(gè)日期之間相差多少天。 可以先將日期轉(zhuǎn)換為毫秒數(shù),然后相減并除以一天的毫秒數(shù)(1000 * 60 * 60 * 24)來(lái)得到結(jié)果。 function daysBetween(date1, date2) { let oneDay = 1000 * 60 * 60 * 24; return Math.round((date2 - date1) / oneDay); } let start = new Date('June 20, 2022'); let end = new Date('July 20, 2022'); console.log(daysBetween(start, end)); // 輸出 "30"
實(shí)例2:計(jì)算兩個(gè)日期之間的時(shí)間差
const startDate = new Date('2021-01-01'); const endDate = new Date('2021-12-31'); const timeDiff = endDate - startDate; // 計(jì)算兩個(gè)日期之間的天數(shù) const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); // 計(jì)算兩個(gè)日期之間的小時(shí)數(shù) const hoursDiff = Math.floor(timeDiff / (1000 * 60 * 60)); // 計(jì)算兩個(gè)日期之間的分鐘數(shù) const minutesDiff = Math.floor(timeDiff / (1000 * 60)); // 計(jì)算兩個(gè)日期之間的秒數(shù) const secondsDiff = Math.floor(timeDiff / 1000); 、、與實(shí)例1大同小異、、、、
實(shí)例3:設(shè)置特定日期和時(shí)間:
const date = new Date(); // 設(shè)置日期為 2022 年 1 月 1 日 date.setFullYear(2022); date.setMonth(0); date.setDate(1); // 設(shè)置時(shí)間為 0 時(shí) 0 分 0 秒 date.setHours(0); date.setMinutes(0); date.setSeconds(0); // 獲取設(shè)置后的日期和時(shí)間 const formattedDate1 = date.toDateString(); const formattedTime2 = date.toTimeString();
實(shí)例4:獲取日期元素
在很多場(chǎng)景下,我們需要單獨(dú)獲取日期的年、月、日等元素。 我們可以使用getFullYear()、getMonth()、getDate()等方法來(lái)實(shí)現(xiàn)這一點(diǎn)。 let now = new Date(); let year = now.getFullYear(); // 獲取四位數(shù)年份 let month = now.getMonth(); // 注意月份是從0開始計(jì)數(shù)的,所以需要加1 let day = now.getDate(); console.log(`${year}/${month + 1}/${day}`); // 輸出類似 "2022/6/20"
實(shí)例5:格式化日期
為了美觀或適應(yīng)用戶偏好,我們通常需要將日期格式化成特定的字符串。 這里我們使用模板字面量和padStart()方法來(lái)實(shí)現(xiàn): function formatDate(date) { let year = date.getFullYear(); let month = `0${date.getMonth() + 1}`.slice(-2); let day = `0${date.getDate()}`.slice(-2); return `${year}-${month}-${day}`; } let today = new Date(); console.log(formatDate(today)); // 輸出類似 "2022-06-20"
附:日常方法
入?yún)⑷掌诘?時(shí)間戳 new Date("2022-08-21 11:12:13").getTime() // 1661051533000 入?yún)⑷掌诘?星期(注:日:0 ,一:1,二:2,三:3,四:4,五:5,六:6) new Date("2022-08-21 11:12:13").getDay() // 0 入?yún)⑷掌诘?年 new Date("2022-08-21 11:12:13").getFullYear() // 2022 入?yún)⑷掌诘?月 -1 new Date("2022-08-21 11:12:13").getMonth() // 7 入?yún)⑷掌诘?日 new Date("2022-08-21 11:12:13").getDate() // 21 入?yún)⑷掌诘?時(shí) new Date("2022-08-21 11:12:13").getHours() // 11 入?yún)⑷掌诘?分 new Date("2022-08-21 11:12:13").getMinutes() // 12 入?yún)⑷掌诘?秒 new Date("2022-08-21 11:12:13").getSeconds() // 13 入?yún)⑷掌诘?毫秒 (注:最大為999) new Date("2022-08-21 11:12:13:999").getMilliseconds() //999
總結(jié)
到此這篇關(guān)于JavaScript中時(shí)間日期函數(shù)new Date()的文章就介紹到這了,更多相關(guān)JS時(shí)間日期函數(shù)new Date()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)單層數(shù)組轉(zhuǎn)多層樹
這篇文章主要介紹了js實(shí)現(xiàn)單層數(shù)組轉(zhuǎn)多層樹方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06關(guān)于JavaScript 數(shù)組你應(yīng)該知道的事情(推薦)
這篇文章主要介紹了JavaScript 數(shù)組,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04javascript中的 object 和 function小結(jié)
JavaScript的面向?qū)ο笫腔谠蔚?,所有?duì)象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對(duì)象的實(shí)例。2016-08-08JavaScript自定義Webpack配置實(shí)現(xiàn)流程介紹
本系列主要整理前端面試中需要掌握的知識(shí)點(diǎn)。本節(jié)介紹webpack如何優(yōu)化前端性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-10-10前端實(shí)現(xiàn)json動(dòng)畫詳細(xì)過(guò)程(附帶示例)
這篇文章主要介紹了如何使用Lottie制作動(dòng)畫,包括創(chuàng)建動(dòng)畫文件.json、實(shí)現(xiàn)效果、在Git倉(cāng)庫(kù)中保存和共享、運(yùn)行動(dòng)畫以及在動(dòng)畫天堂下載和顯示JSON動(dòng)畫,文中通過(guò)代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02JavaScript與ActionScript3兩者的同性與差異性
接觸JavaScript和ActionScript3也有近5年的時(shí)間了,它們都是應(yīng)用比較廣泛的腳本語(yǔ)言.接下來(lái)通過(guò)本文給大家介紹JavaScript與ActionScript3兩者的同性與差異性,感興趣的朋友一起學(xué)習(xí)吧2016-09-09js中刪除數(shù)組中的某一元素實(shí)例(無(wú)下標(biāo)時(shí))
下面小編就為大家?guī)?lái)一篇js中刪除數(shù)組中的某一元素實(shí)例(無(wú)下標(biāo)時(shí))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02