moment.js常用API

360 阅读2分钟

记录一下在vue的项目里用到的时间API~

获取时间

import moment from 'moment';
​
moment().valueOf() // 获取时间戳(以毫秒为单位)moment().startOf('day')   // 获取今天0时0分0秒 moment对象
moment().startOf('isoWeek')  // 获取本周周一0时0分0秒
moment().startOf('month')  // 获取本月第一天0时0分0秒moment().endOf('day')   // 获取今天23时59分59秒
moment().endOf('isoWeek')  // 获取本周周日23时59分59秒
moment().endOf('month')   // 获取本月最后一天23时59分59秒moment().year()       //   获取当前年份
moment().month()   //   获取当前月(0~11, 0 =>1月, 11=>12月)
moment().date()     //  获取今天
moment().day()      // 获取当前星期 (0~6, 0: 周日, 6: 周六)moment().daysInMonth()  // 获取本月的总天数moment().month(moment().month()).startOf('month').valueOf() //  上个月1号的00:00:00(时间戳并且多加了三个0)
moment().month(moment().month()).endOf('month').valueOf()  //  上个月最后一天的23:59:59(时间戳并且多加了三个0)moment('2012-01-01').isBefore('2012-01-01') // 比较两个时间 -> 返回true/false moment().startOf('month').format('YYYY-MM-DD') // 本月开始时间
moment().endOf('month').format('YYYY-MM-DD') // 本月结束时间 moment().startOf('quarter').format('YYYY-MM-DD') // 当前季度开始
moment().endOf('quarter').format('YYYY-MM-DD') // 当前季度结束日期

格式化时间

moment().format('YYYY-MM-DD')
moment().format('hh:mm:ss a')    //  格式化时分秒(12小时制)
moment().format('x')    // 格式化时间戳(以毫秒为单位)
​
new Date(moment().toDate()) //转化为JS原生Date对象

设置时间

moment().year(2019)       //   设置年
moment().month(9)   //   设置月( 0~11, 0 =>1月, 11=>12月)
moment().date(2)     //  设置日期
moment().isoWeekday(1) // 设置日期为本周周一
 
moment().add(1, 'years')    //  设置下一年
moment().add(1, 'months')   // 设置下一月
moment().add(1, 'days')    //  设置下一天
moment().add(1, 'weeks')    //  设置下一周
 
moment().subtract(1, 'years')    //  设置上一年
moment().subtract(1, 'months')   // 设置上一月
moment().subtract(1, 'days')    //  设置上一天
moment().subtract(1, 'weeks')    //  设置上一周

比较时间

let startDate = moment().subtract(1, 'weeks')
let endDate = moment()
endDate.diff(startDate)     // 返回相差的毫秒数
 
endDate.diff(startDate, 'months')     // 返回相差的月数 0
endDate.diff(startDate, 'weeks')      // 返回相差的星期数 1
endDate.diff(startDate, 'days')       // 返回相差的天数 7
startDate.diff(endDate, 'days')      // 返回相差的天数 -7moment('2022-02-06').diff(moment('2022-01-31'), 'days') // 获取两个日期时间相隔多少天

示例

let date = new Date();
let startMonth = moment(date).startOf('month').format('YYYYMMDD') //获得本月第一天
let nextMonth = moment(date).add(1, 'months').startOf('month').format('YYYYMMDD')//获得下个月的第一天
moment(end).diff(moment(start),'months');//end和start为字符串 转换为moment对象 获取其相差月份

moment.js英文官网
moment.js中文官网