[TOC] #### 1. 日期對(duì)象 --- 首先,先認(rèn)識(shí)以下 Date 對(duì)象,這是 JS 的一個(gè)內(nèi)置對(duì)象,在 JS 中使用 Date 對(duì)象來(lái)表示一個(gè)時(shí)間 使用 `Date()` 構(gòu)造函數(shù)創(chuàng)建 Date 對(duì)象,省略參數(shù)時(shí),默認(rèn)是當(dāng)前時(shí)間的 Date 對(duì)象 如果想要?jiǎng)?chuàng)建一個(gè)指定時(shí)間的 Date 對(duì)象,下面有多種寫(xiě)法,根據(jù)項(xiàng)目場(chǎng)景選擇更合適的寫(xiě)法即可: ```javascript // 當(dāng)前日期時(shí)間 let date = new Date() // 指定毫秒時(shí)間戳(此時(shí)參數(shù)必須是 Number類型, 不能是 String 類型) let date = new Date(1671260180580) // 標(biāo)準(zhǔn)日期時(shí)間格式 let date = new Date("2022-12-10 16:09:47") ``` #### 2. 日期對(duì)象方法 --- ```javascript // 創(chuàng)建日期對(duì)象 let date = new Date() // 四位數(shù)的年份,如:2022 let year = date.getFullYear() // 月份:0-11,0代表1月,1代表2月以此類推 let month = date.getMonth() // 月份中的第幾天(幾號(hào)):1-31 let day = date.getDate() // 一周中的第幾天:0-6(0是周日) let week = date.getDay() // 小時(shí):0-23 let hours = date.getHours() // 分鐘:0-59 let minutes = date.getMinutes() // 秒數(shù):0-59 let seconds = date.getSeconds() // 毫秒:0-999 let milliseconds = date.getMilliseconds() // 從 1970-1-1 00:00:00 UTC 開(kāi)始的毫秒數(shù) let timestamp = date.getTime() ``` #### 3. 獲取時(shí)間戳 --- JS 中的時(shí)間戳都是毫秒時(shí)間戳,下面是獲取毫秒時(shí)間戳的多種方式,任選一種即可 ```javascript Date.now() new Date().getTime() (new Date()).valueOf() Number(new Date()) ``` 獲取單位為秒的時(shí)間戳,只需將上面獲取到的毫秒時(shí)間戳轉(zhuǎn)為秒時(shí)間戳,即除以1000再做取整操作就可以了 ``` Math.round(new Date() / 1000) ``` #### 4. 日期時(shí)間格式 --- 下面是獲取當(dāng)前時(shí)間(標(biāo)準(zhǔn)日期時(shí)間格式),根據(jù)項(xiàng)目需求再做修改即可 ```javascript /** * 獲取當(dāng)前時(shí)間(標(biāo)準(zhǔn)日期時(shí)間格式) * 返回示例:2022-12-17 14:48:27 */ function getTime() { let date = new Date() let year = date.getFullYear() let month = date.getMonth() + 1 let day = date.getDate() let hours = date.getHours() let minutes = date.getMinutes() let seconds = date.getSeconds() let monAndDay = [month, day].map(item => item < 10 ? '0' + item : item).join('-') let time = [hours, minutes, seconds].map(item => item < 10 ? '0' + item : item).join(':') return year + '-' + monAndDay + ' ' + time } ``` PHP 中的的時(shí)間戳是10位數(shù)字的秒時(shí)間戳,下面是將10位的秒時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式的功能函數(shù) ```javascript /** * 將10位的秒時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式 */ function getTime(timestamp) { let date = new Date(timestamp * 1000) let year = date.getFullYear() let month = date.getMonth() + 1 let day = date.getDate() let hours = date.getHours() let minutes = date.getMinutes() let seconds = date.getSeconds() let monAndDay = [month, day].map(item => item < 10 ? '0' + item : item).join('-') let time = [hours, minutes, seconds].map(item => item < 10 ? '0' + item : item).join(':') return year + '-' + monAndDay + ' ' + time } ```