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秒
moment().endOf('week')
獵取本周周日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
實戰
獵取昨日0時0分0秒到昨日23時59分59秒, 花樣:[milliseconds, milliseconds]
獵取上周一到上周日時候局限,花樣: [seconds, seconds]
獵取上個月第一天和末了一天時候局限, 花樣:[YYYY-MM-DD, YYYY-MM-DD]