Moment.js 常用API文档
1. 获取当前时间
moment() // 当前时间对象
moment().format() // 默认格式:2024-01-15T10:30:00+08:00
moment().format('YYYY-MM-DD') // 2024-01-15
moment().format('YYYY-MM-DD HH:mm:ss') // 2024-01-15 10:30:00
moment().format('YYYY年MM月DD日') // 2024年01月15日
2. 时间加减操作
moment().add(1, 'days') // 明天
moment().add(1, 'months') // 下个月
moment().add(-1, 'days') // 昨天
moment().subtract(1, 'days') // 昨天
moment().add(7, 'hours') // 7小时后
moment().subtract(30, 'minutes') // 30分钟前
3. 时间比较
moment().isBefore(moment()) // false
moment().isAfter(moment()) // false
moment().isSame(moment(), 'day') // true
moment().isBetween(startDate, endDate) // 是否在时间范围内
moment().isSameOrBefore(date) // 是否相同或之前
moment().isSameOrAfter(date) // 是否相同或之后
4. 获取时间部分
moment().year() // 年 (2024)
moment().month() // 月 (0-11, 0表示1月)
moment().date() // 日 (1-31)
moment().day() // 星期 (0-6, 0表示周日)
moment().hour() // 小时 (0-23)
moment().minute() // 分钟 (0-59)
moment().second() // 秒 (0-59)
moment().millisecond() // 毫秒 (0-999)
5. 时间差计算
moment().diff(moment().add(1, 'days'), 'days') // -1
moment().diff(moment().subtract(1, 'hours'), 'hours') // 1
moment.duration(1, 'days').asHours() // 24
moment.duration(2, 'hours').asMinutes() // 120
6. 解析字符串
moment('2024-01-15', 'YYYY-MM-DD')
moment('2024/01/15', 'YYYY/MM/DD')
moment('2024-01-15 10:30:00', 'YYYY-MM-DD HH:mm:ss')
moment('15/01/2024', ['DD/MM/YYYY', 'YYYY-MM-DD']) // 多格式解析
7. 设置时间
moment().set('year', 2024)
moment().set('month', 0) // 设置为1月
moment().set('date', 15) // 设置为15号
moment().set('hour', 10) // 设置为10点
8. 获取时间戳
moment().valueOf() // 毫秒时间戳 (1705302000000)
moment().unix() // 秒时间戳 (1705302000)
moment().format('X') // 秒时间戳字符串
moment().format('x') // 毫秒时间戳字符串
9. 克隆时间
const now = moment()
const tomorrow = now.clone().add(1, 'days')
const yesterday = now.clone().subtract(1, 'days')
10. 特殊时间获取
moment().startOf('day') // 当天开始时间 (00:00:00)
moment().endOf('day') // 当天结束时间 (23:59:59)
moment().startOf('month') // 当月第一天
moment().endOf('month') // 当月最后一天
moment().startOf('year') // 当年第一天
moment().endOf('year') // 当年最后一天
moment().startOf('week') // 本周第一天(周日)
moment().startOf('isoWeek') // 本周第一天(周一)
11. 判断相关
moment().isLeapYear() // 是否闰年
moment().isDST() // 是否夏令时
moment().isUTC() // 是否UTC时间
moment('2024-13-45').isValid() // 是否有效日期
12. 获取月份天数
moment().daysInMonth() // 当前月的天数
moment('2024-02').daysInMonth() // 2024年2月的天数(闰年29天)
13. 相对时间
moment().fromNow() // "几秒前"
moment().toNow() // "几秒后"
moment().from(moment().add(1, 'days')) // "1天内"
moment().to(moment().subtract(1, 'days')) // "1天前"
14. 本地化
moment.locale('zh-cn') // 设置为中文
moment().format('LLLL') // 本地化格式
moment().format('LL') // 2024年1月15日
moment().format('ll') // 2024年1月15日
15. 周信息
moment().week() // 一年中的第几周
moment().weekYear() // 周所在的年份
moment().isoWeek() // ISO标准的第几周
moment().isoWeekYear() // ISO周所在的年份
16. 季度相关
moment().quarter() // 季度(1-4)
moment().startOf('quarter') // 当前季度开始
moment().endOf('quarter') // 当前季度结束
17. 格式化选项
moment().format('MMMM Do YYYY, h:mm:ss a') // 2024年1月15日 下午3:24:00
moment().format('dddd') // 星期一
moment().format('MMM Do YY') // 1月15日 24
moment().format('YYYY [年] MM [月] DD [日]') // 2024年1月15日
18. 数组和对象格式
moment().toArray() // [2024, 0, 15, 10, 30, 0, 0]
moment().toObject() // 包含所有时间属性的对象
moment().toJSON() // ISO 8601格式
19. 字符串格式
moment().toString() // Mon Jan 15 2024 10:30:00 GMT+0800
moment().toISOString() // 2024-01-15T02:30:00.000Z
20. 最大/最小日期
moment.max(date1, date2, date3) // 获取最晚的日期
moment.min(date1, date2, date3) // 获取最早的日期
21. 持续时间
moment.duration(1, 'days')
moment.duration(2, 'hours')
moment.duration(30, 'minutes')
moment.duration(1, 'days').humanize() // "1天"
22. 时区处理
moment().utc() // 转换为UTC时间
moment().local() // 转换为本地时间
moment.tz('2024-01-15', 'Asia/Shanghai') // 指定时区
moment().zone('+0800') // 设置时区偏移
23. 工作日计算(需要插件)
moment().businessAdd(5, 'days') // 添加5个工作日
moment().businessSubtract(3, 'days') // 减去3个工作日
24. 常用格式模板
// 日期格式
'YYYY-MM-DD' // 2024-01-15
'YYYY/MM/DD' // 2024/01/15
'DD/MM/YYYY' // 15/01/2024
// 时间格式
'HH:mm:ss' // 14:30:00
'h:mm:ss a' // 2:30:00 pm
// 日期时间格式
'YYYY-MM-DD HH:mm:ss' // 2024-01-15 14:30:00
'YYYY/MM/DD HH:mm:ss' // 2024/01/15 14:30:00
// 中文格式
'YYYY年MM月DD日' // 2024年01月15日
'YYYY年M月D日' // 2024年1月15日
'MM月DD日' // 01月15日
25. 实用技巧
// 获取本月第一天和最后一天
const firstDay = moment().startOf('month').format('YYYY-MM-DD')
const lastDay = moment().endOf('month').format('YYYY-MM-DD')
// 获取本周一和周日
const monday = moment().startOf('isoWeek').format('YYYY-MM-DD')
const sunday = moment().endOf('isoWeek').format('YYYY-MM-DD')
// 获取上个月同一天
const lastMonth = moment().subtract(1, 'months').format('YYYY-MM-DD')
// 获取明年同一天
const nextYear = moment().add(1, 'years').format('YYYY-MM-DD')
// 判断两个日期是否在同一周
moment().isSame(otherDate, 'week')
// 获取两个日期之间的天数
const days = moment(endDate).diff(moment(startDate), 'days')
更多详细信息请参考 Moment.js 官方文档