一、引入
import moment from 'moment'
二、使用
console.log(moment().format("YYYY-MM-DD HH:mm:ss")); //当前时间 (24小时制)
console.log(moment().add(1, "hours").format("YYYY-MM-DD HH:mm:ss")); //当前时间增加1小时
console.log(moment().add(1, "months").format("YYYY-MM-DD HH:mm:ss")); //当前时间增加1个月
console.log(moment().subtract(10, "days").format("YYYY-MM-DD HH:mm:ss")); //当前时间的前10天时间
console.log(moment().subtract(1, "years").format("YYYY-MM-DD HH:mm:ss")); //当前时间的前1年时间
console.log(moment().subtract(3, "months").format("YYYY-MM-DD HH:mm:ss")); //当前时间的前3个月时间
console.log(moment().subtract(1, "weeks").format("YYYY-MM-DD HH:mm:ss")); //当前时间的前一个星期时间
三、两个日期/时间的时差:
moment(endTime).diff(moment(startTime), 'years')
moment(endTime).diff(moment(startTime), 'months')
moment(endTime).diff(moment(startTime), 'days')
// 开始时间和结束时间的时间差,以“天”为单位;endTime和startTime都是毫秒数
moment(endTime).diff(moment(startTime),'minutes' )
moment(endTime).diff(moment(startTime), 'seconds')
console.log(moment(endDate).diff(moment(startDate), 'days'))//查看时间差
四、成生成时间列表
_getTimeList () {//生成时间列表
const temp = moment(this.searchParams.endDate).diff(moment(this.searchParams.startDate), 'days')
console.log('时间相差天数:', temp)//查看时间间隔
if (temp == 0) {//相差0天,生成24小时列表
const t = moment('00', 'HH')//生成00
this.TIMEList.push(t.format('HH'))//压进去
for (let i = 0; i < 23; i++) {//每次增加一小时
this.TIMEList.push(t.add(1, 'hours').format('HH'))
}
} else {
const t = moment(this.searchParams.startDate)//生成开始日期
this.TIMEList.push(t.format('YYYY-MM-DD'))
for (let i = 0; i < temp; i++) {//每次增加一天
this.TIMEList.push(t.add(1, 'days').format('YYYY-MM-DD'))
}
}
// console.log('TIMEList', this.TIMEList)//查看时间列表
},
五、获取月份和星期枚举列表
moment.months()
# ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
moment.monthsShort()
# ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
moment.weekdays()
# ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
moment.weekdaysMin()
# ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
六、获取时间
# 获取今天0时0分0秒
moment().startOf('day')
# 获取本周第一天(周日)0时0分0秒
moment().startOf('week')
# 获取本周周一0时0分0秒
moment().startOf('isoWeek')
# 获取当前月第一天0时0分0秒
moment().startOf('month')
# 获取指定日期的0时0分0秒
moment('2019-10-20').startOf('day')
# 获取今天23时59分59秒
moment().endOf('day')
# 获取本周最后一天(周六)23时59分59秒
moment().endOf('week')
# 获取本周周日23时59分59秒
moment().endOf('isoWeek')
# 获取当前月最后一天23时59分59秒
moment().endOf('month')
标准化返回一个时间
changeDate (time) {
const d = (new Date(time))
const datetime = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate()
return datetime
},
七、一些小常识
格式代码 | 说明 |
---|---|
M | 数字表示的月份,没有前导0 |
MM | 数字表示的月份,有前导0 |
MMM | 三个字母缩写表示的月份 |
MMMM | 月份,完整的文本格式 |
Q | 季度 |
D | 月份中的第几天,没有前导0 |
DD | 月份中的第几天,有前导0 |
d | 星期天的第几天,数字表示 |
ddd | 三个字母表示星期中的第几天 |
dddd | 星期几,完整的星期文本 |
w | 年份中的第几周 |
YYYY | 四位数字完整表示的年份 |
YY | 两位数表示的年份 |
A | 大写的AM PM |
a | 小写的am pm |
HH | 小时,24小时制,有前导零 |
H | 小时,24小时制,无前导零 |
hh | 小时,12小时制,有前导零 |
h | 小时,12小时制,无前导零 |
m | 没有前导零的分钟数 |
mm | 有前导零的分钟数 |
s | 没有前导零的秒数 |
ss | 有前导零的描述 |
X | Unix时间戳 |