前端常用時間工具 -- Moment.js常見用法總結

Moment.js常見用法總結

Moment.js常見用法總結

Moment.js是一個輕量級的JavaScript時間庫,它方便了日常開發中對時間的操作,提高了開發效率。
​日常開發中,通常會對時間進行下面這幾個操作:比如獲取時間,設置時間,格式化時間,比較時間等等。接下來,我將按照這些操作對Moment.js中的Doc進行整理分類,方便學習和日後的查閱。

獲取時間

Start of Time

moment().startOf(String)

獲取今天0時0分0秒

moment().startOf('day')

獲取本週第一天(週日)0時0分0秒

moment().startOf('week')

獲取本週週一0時0分0秒

moment().startOf('isoWeek')

獲取當前月第一天0時0分0秒

moment().startOf('month')

End of Time

moment().endOf(String)

獲取今天23時59分59秒

moment().endOf('day')

獲取本週最後一天(週六)23時59分59秒
獲取本週週日23時59分59秒

moment().endOf('isoWeek')

獲取當前月最後一天23時59分59秒

moment().endOf('month')

Days in Month

moment().daysInMonth()

獲取當前月的總天數

moment().daysInMonth() 

Timestamp

獲取時間戳(以秒爲單位)

moment().format('X') // 返回值爲字符串類型
moment().unix() // 返回值爲數值型

獲取時間戳(以毫秒爲單位)

moment().format('x') // 返回值爲字符串類型
moment().valueOf() // 返回值爲數值型

Get Time

獲取年份

moment().year()
moment().get('year')

獲取月份

moment().month() (0~11, 0: January, 11: December)
moment().get('month')

獲取一個月中的某一天

moment().date()
moment().get('date')

獲取一個星期中的某一天

moment().day() (0~6, 0: Sunday, 6: Saturday)
moment().weekday() (0~6, 0: Sunday, 6: Saturday)
moment().isoWeekday() (1~7, 1: Monday, 7: Sunday)
moment().get('day')
mment().get('weekday')
moment().get('isoWeekday')

獲取小時

moment().hours()
moment().get('hours')

獲取分鐘

moment().minutes()
moment().get('minutes')

獲取秒數

moment().seconds()
moment().get('seconds')

獲取當前的年月日時分秒

moment().toArray() // [years, months, date, hours, minutes, seconds, milliseconds]
moment().toObject() // {years: xxxx, months: x, date: xx ...}

設置時間

Set Time

moment().year(Number), moment().month(Number)...
moment().set(String, Int)
moment().set(Object)

設置年份

moment().year(2019)
moment().set('year', 2019)
moment().set({year: 2019})

設置月份

moment().month(11) (0~11, 0: January, 11: December)
moment().set('month', 11) 

設置某個月中的某一天

moment().date(15)
moment().set('date', 15)

設置某個星期中的某一天

moment().weekday(0) // 設置日期爲本週第一天(週日)
moment().isoWeekday(1) // 設置日期爲本週週一
moment().set('weekday', 0)
moment().set('isoWeekday', 1)

設置小時

moment().hours(12)
moment().set('hours', 12)

設置分鐘

moment().minutes(30)
moment().set('minutes', 30)

設置秒數

moment().seconds(30)
moment().set('seconds', 30)

Add Time

moment().add(Number, String)
moment().add(Object)

設置年份

moment().add(1, 'years')
moment().add({years: 1})

設置月份

moment().add(1, 'months')

設置日期

moment().add(1, 'days')

設置星期

moment().add(1, 'weeks')

設置小時

moment().add(1, 'hours')

設置分鐘

moment().add(1, 'minutes')

設置秒數

moment().add(1, 'seconds')

Subtract Time

moment().subtract(Number, String)
moment().subtract(Object)

設置年份

moment().subtract(1, 'years')
moment().subtract({years: 1})

設置月份

moment().subtract(1, 'months')

設置日期

moment().subtract(1, 'days')

設置星期

moment().subtract(1, 'weeks')

設置小時

moment().subtract(1, 'hours')

設置分鐘

moment().subtract(1, 'minutes')

設置秒數

moment().subtract(1, 'seconds')

格式化時間

Format Time

moment().format()
moment().format(String)

格式化年月日: ‘xxxx年xx月xx日’

moment().format('YYYY年MM月DD日')

格式化年月日: ‘xxxx-xx-xx’

moment().format('YYYY-MM-DD')

格式化時分秒(24小時制): ‘xx時xx分xx秒’

moment().format('HH時mm分ss秒')

格式化時分秒(12小時制):‘xx:xx:xx am/pm’

moment().format('hh:mm:ss a')

格式化時間戳(以秒爲單位)

moment().format('X') // 返回值爲字符串類型

格式化時間戳(以毫秒爲單位)

moment().format('x') // 返回值爲字符串類型

比較時間

Difference

moment().diff(Moment|String|Number|Date|Array)

獲取兩個日期之間的時間差

let start_date = moment().subtract(1, 'weeks')
let end_date = moment()

end_date.diff(start_date) // 返回毫秒數

end_date.diff(start_date, 'months') // 0
end_date.diff(start_date, 'weeks') // 1
end_date.diff(start_date, 'days') // 7
start_date.diff(end_date, 'days') // -7

轉化爲JavaScript原生Date對象

moment().toDate()
new Date(moment())

將Moment時間轉換爲JavaScript原生Date對象

let m = moment()
let nativeDate1 = m.toDate()
let nativeDate2 = new Date(m)

String(nativeDate1) === String(nativeDate2) // true
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章