Moment.js 是一個用于處理日期和時間的 JavaScript 庫,它提供了許多方便的函數和方法來操作、格式化和解析日期時間。官網
常見用法
- 格式化日期時間:可以使用format方法將日期時間格式化為指定的字符串格式,例如YYYY-MM-DD HH:mm:ss。
- 獲取日期時間的部分信息:可以使用get方法獲取日期時間的年、月、日、小時、分鐘、秒等部分信息。
- 操作日期時間:可以使用add、subtract等方法對日期時間進行加減操作,例如增加或減少幾天、幾個月、幾年等。
- 解析日期時間字符串:可以使用parse方法將字符串解析為日期時間對象。
- 設置日期時間的時區:可以使用locale方法設置日期時間的時區。
const moment = require('moment')const currentTime = moment();
console.log(currentTime)console.log(currentTime.format('YYYY-MM-DD HH:mm:ss')) // 格式化日期
console.log(currentTime.get('year')) // 獲取當前年份
console.log(currentTime.get('month')) // 獲取當前月份(0-11)// 如果想要時間格式 需要用格式化方法
console.log(moment().subtract(1,'w').startOf('week')) // 獲取上周一日期
console.log(moment().subtract(1,'w').endOf('week')) // 獲取上周日日期
console.log(moment().subtract(1,'m').startOf('month')) // 獲取上個月第一天
格式化
// 月份
console.log(currentTime.format('M')) // 獲取當前月份(0-11)
console.log(currentTime.format('Mo')) // 獲取當前月份(1-12)
console.log(currentTime.format('MM')) // 獲取當前月份(01-12)
console.log(currentTime.format('MMM')) // 獲取當前月份(Jan-Dec)
console.log(currentTime.format('MMMM')) // 獲取當前月份(January-December)// 日
console.log(currentTime.format('D')) // 獲取當前月份(1-31)
console.log(currentTime.format('Do')) // 獲取當前月份 (1st-31st)
console.log(currentTime.format('DD')) // (01-31)
console.log(currentTime.format('DDD')) // 當前日本年第幾天
momentjs的格式化方式還有很多具體可以學習官方文檔
moment().isBefore(moment().subtract(1, 'w')) // 判斷是否在當前時間之前
moment().isAfter(moment().subtract(1, 'w')) // 判斷是否在當前時間之后
moment().isSame(moment().subtract(1, 'w')) // 判斷是否在當前時間相同// 括號中需要添加參數
moment().isLeapYear() // 判斷是否為閏年
moment().isDST() // 判斷是否為夏令時
moment().isMoment() // 判斷是否為moment對象
除了 Moment.js 之外,還有一些其他流行的 JavaScript 時間庫可以考慮使用。其中一些包括:
Day.js:一個極簡的JavaScript庫,可以為現代瀏覽器解析、驗證、操作和顯示日期和時間。文件大小只有2KB左右,下載、解析和執行的JavaScript更少,為代碼留下更多的時間。Dayjs
Luxon:由 Moment.js 的原作者開發的現代 JavaScript 日期/時間庫,提供了比 Moment.js 更好的性能和時區支持。Luxon
date-fns:一個現代 JavaScript 日期工具庫,提供了許多函數來處理日期和時間,比如解析、格式化、比較、計算等。date-fp
date-and-time:一個輕量級的 JavaScript 日期和時間庫,提供了與 Moment.js 類似的 API,但是更輕量級。date-and-time