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