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