欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現(xiàn)日期格式化的操作詳解

 更新時間:2023年05月25日 14:35:28   作者:夜雨炊煙  
在我們做業(yè)務開發(fā)的漫長歲月里,會多次跟時間打交道,相信大多數小伙伴對日期格式化也并不陌生,本文簡單記錄了JavaScript實現(xiàn)日期格式化的過程,以及一些拓展,希望對大家有所幫助

對,就是實現(xiàn)日期格式化,在我們做業(yè)務開發(fā)的漫長歲月里,會多次跟時間打交道,相信大多數小伙伴對都寫過類似倒計時的功能,那么對于日期格式化相信也并不陌生,這里簡單記錄一下實現(xiàn)日期格式化的過程,以及一些拓展。

在實現(xiàn)之前可以先了解下Date,下面簡單介紹一下Date對象包含的一些屬性和方法。

Date

Date作為JavaScript標準內置對象,創(chuàng)建的唯一方法就是通過new操作符, 通過new Date()來顯示當前時刻的日期和時間,否則會被當做常規(guī)函數調用,返回一個字符串。

let timer = new Date() // Date()構造函數
console.log("timer", typeof (timer)) // object

let timer = Date()
console.log("timer", typeof (timer)) // string

屬性

Date.prototype

可以為Date對象添加屬性,這個下面會詳細介紹

Date.length

Date.lenght的值為7。這是Date()構造函數可以接受的參數個數,這7個參數分別為:century,year,month,dayhour,minute,second

方法

1.Date.now()

表示從1970-1-1 00:00:00 UTC(世界標準時間)至今所經過的毫秒數,也就是當前所在時間的毫秒數。

2.Date.parse()

解析日期字符串,獲取該字符串與1970-1-1 00:00:00之間所經過的毫秒數。

3.Date.UTC()

Date.parse()不同的是,該方法接受長度最長與Date()構造函數參數長度相同的參數,返回1970-1-1 00:00:00 UTC之間所經過的毫秒數。

實例

上面說到Date.prototype屬性,在所有Date實例中都繼承自該屬性,修改Date構造函數的原型對象會影響所有的Date實例。

注意:示例輸出參考時間節(jié)點 2023-05-24 18:21:31:12 周三

實例屬性

1.Date.prototype.constructor

返回創(chuàng)建了實例的構造函數,默認是 Date構造函數。

let timer = new Date()

2.Date.prototype.getDay()

返回一周中的第幾天,默認0星期天。

timer.getDay() // 3

3.Date.prototype.getFullYear()

返回當前時間對應的年。

timer.getFullYear()// 2023

4.Date.prototype.getMonth()

返回當前時間所對應的月,需要注意的是月份從0開始,表示一年中的第一個月。

timer.getMonth() + 1 // 5

5.Date.prototype.getDate()

返回當前時間對應的日。

timer.getDate() // 24

6.Date.prototype.getHours()

返回當前時間對應的小時(0-23)。

timer.getHours() // 18

7.Date.prototype.getMinutes()

返回當前時間對應的分鐘(0-59)。

timer.getMinutes() // 21

8.Date.prototype.getSeconds()

返回當前時間對應的秒(0-59)。

timer.getSeconds() // 31

9.Date.prototype.getMilliseconds()

返回當前時間對應的毫秒數(0-999)。

timer.getMilliseconds() // 12

10.Date.prototype.getTime()

返回當前時間對應的時間戳(毫秒數),距離初始時間1970年01月01日00時00分00秒的間隔,小于這個時間會顯示負數。

new Date(timer).getTime() // 1684923691012

11.Date.prototype.valueOf()

返回當前時間的時間戳,官方解釋是:返回一個Date對象的原始值

newDate.valueOf() // 1684923691012

有了上面的這些基礎知識就可以來實現(xiàn)日期格式化了,如果想要多了解的話可以參考Date-MDN

實現(xiàn)日期格式化

還是以上面的時間節(jié)點為例:2023-05-24 18:21:31:12

假如這是一個日期格式的字符串

let date = '2023-05-24 18:21:31:12'
let timer = new Date(date) // 轉為日期對象
let year = timer.getFullYear()
let month = timer.getMonth() + 1
let day = timer.getDate()
let hour = timer.getHours()
let minutes = timer.getMinutes()
let seconds = timer.getSeconds()

console.log(`當前時間:${year}年${month}月${day}日 ${hour}時${minutes}分${seconds}秒`)
// 當前時間:2023年5月24日 18時21分31秒

處理得到結果后,可以進一步優(yōu)化,進行復用,將這些方法封裝成一個函數進行調用

let date = '2023-05-24 18:21:31:12'
getDate(date)
function getDate(date) {
  let timer = new Date(date) // 轉為日期對象
  let year = getZero(timer.getFullYear())
  let month = getZero(timer.getMonth() + 1)
  let day = getZero(timer.getDate())
  let hour = getZero(timer.getHours())
  let minutes = getZero(timer.getMinutes())
  let seconds = getZero(timer.getSeconds())

  console.log(`當前時間:${year}年${month}月${day}日 ${hour}時${minutes}分${seconds}秒`)
  // 當前時間:2023年05月24日 18時21分31秒
}
// 如果小于10進行補零的參數,同樣封裝一個函數
function getZero(zero) {
  return zero < 10 ? '0' + zero : zero
}

到這里,日期格式化處理完成,下面是一些擴展的硬核知識

擴展

思考

我們注意的是在上述日期字符串中是一個標準的日期格式,這個時候你可能會有疑惑,如果是時間戳呢?如果是標準時間呢?

如果是標準時間跟上述日期字符串處理等同,如果是時間戳需要先轉換為日期格式,轉換方式可以先將時間戳翻入日期對象中,然后就可以正常進行格式化處理。

let dateTime = '1684979976140'
let newDate = new Date(+dateTime) // 如果時間戳是字符串的話使用 + 進行轉換

不管什么時候字符串首先都需要通過Date() 構造函數進行處理成一個日期對象格式,才可以進行后續(xù)的操作。

需要注意的是時間戳如果是上述13位表明最終取到的是精確到秒的日期,如果大于13位就相當于取到毫秒級那么就需要在原來基礎上 *1000

日期轉換為時間戳

根據Date-MDN文檔,我們可以發(fā)現(xiàn)有三種方式可以將日期轉換為時間戳格式

let dateTime = '2023-05-24 18:21:31:12'
let newDate = new Date(dateTime)

newDate.getTime() // 1684923691012
newDate.valueOf() // 1684923691012
Date.parse(dateTime) // 1684923691012

以上就是JavaScript實現(xiàn)日期格式化的操作詳解的詳細內容,更多關于JavaScript日期格式化的資料請關注腳本之家其它相關文章!

相關文章

  • JavaScript實現(xiàn)兩個數組的交集

    JavaScript實現(xiàn)兩個數組的交集

    這篇文章主要介紹了JavaScript實現(xiàn)兩個數組的交集,給定兩個數組???nums1???和??nums2??返回它們的交集,輸出結果中的每個元素一定是唯一的,下文詳細介紹,需要的小伙伴可以參考一下
    2022-03-03
  • JS+CSS實現(xiàn)TreeMenu二級樹形菜單完整實例

    JS+CSS實現(xiàn)TreeMenu二級樹形菜單完整實例

    這篇文章主要介紹了JS+CSS實現(xiàn)TreeMenu二級樹形菜單,以完整實例形式較為詳細的分析了JS二級樹形菜單的節(jié)點元素操作技巧,非常簡單實用,需要的朋友可以參考下
    2015-09-09
  • 在js中做數字字符串補0(js補零)

    在js中做數字字符串補0(js補零)

    這篇文章主要介紹了在js中做數字字符串補0(js補零),需要的朋友可以參考下
    2017-03-03
  • 一文帶你玩轉JavaScript的箭頭函數

    一文帶你玩轉JavaScript的箭頭函數

    在ES6中新增了函數的簡寫方式----箭頭函數,箭頭函數的出現(xiàn)不僅簡化了大量代碼,也讓代碼看起來更加優(yōu)雅,同時也解決了this指向問題,下面我們就來詳細講解如何玩轉箭頭函數
    2022-09-09
  • JS html時鐘制作代碼分享

    JS html時鐘制作代碼分享

    這篇文章主要為大家分享了JS html時鐘的制作代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JS實現(xiàn)控制表格行內容垂直對齊的方法

    JS實現(xiàn)控制表格行內容垂直對齊的方法

    這篇文章主要介紹了JS實現(xiàn)控制表格行內容垂直對齊的方法,通過javascript的getElementById獲取元素并設置其相應樣式來實現(xiàn)這一功能,需要的朋友可以參考下
    2015-03-03
  • CountUp.js數字滾動插件使用方法詳解

    CountUp.js數字滾動插件使用方法詳解

    這篇文章主要為大家詳細介紹了CountUp.js數字滾動插件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 前端JS獲取URL參數的4種方法總結

    前端JS獲取URL參數的4種方法總結

    通過url傳遞參數是我們在開發(fā)中經常用到的一種傳參方法,下面這篇文章主要給大家介紹了關于前端JS獲取URL參數的4種方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • JS實現(xiàn)音量控制拖動

    JS實現(xiàn)音量控制拖動

    這篇文章主要為大家詳細介紹了JS實現(xiàn)音量控制拖動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • JS動態(tài)更改div高度實現(xiàn)代碼例子

    JS動態(tài)更改div高度實現(xiàn)代碼例子

    在Web開發(fā)中通過使用JavaScript可以動態(tài)地修改HTML元素的屬性和樣式,下面這篇文章主要給大家介紹了關于JS動態(tài)更改div高度實現(xiàn)的相關資料,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-11-11

最新評論