Moment.js 常见用法,常见API
一、当前年
moment().format("YYYY") // 字符串 2020
moment().year() / moment().get('year') // 数字 2020
二、当前月
moment().format('MM') // 九月的话,会显示 字符串 09
moment().month() / moment().get('month') // 九月的话,会显示 数字 8
三、当前星期几
moment().format('dddd') // 星期天的话,会显示Sunday
moment().locale('zh-cn').format('dddd') // 星期天的话,中文显示星期日
moment().day() / moment().get('day') // 星期天的话,会显示 数字 0
moment().get('isoWeekday') // 星期天的话,会显示 数字 7
四、当前几号
moment().date() / moment().get('date') // 今天时27号,会显示 数字 27
五、当前年月日
moment().format('YYYY-MM-DD') // 会显示2020-09-27
moment().format('YYYY/MM/DD') // 会显示2020/09/27
六、当前时分秒
moment().format('HH:mm:ss') // 会显示24小时制的时间17:19:55
moment().format('hh:mm:ss') // 会显示12小时制的时间05:19:55
七、当前月总天数
moment().daysInMonth() // 九月小,只有三十天,会显示 数字 30
八、当前时间戳
moment().format('X') // 返回字符串,时间戳以秒为单位
moment().numx() // 返回 数字,时间戳以秒为单位
moment().format('x') // 返回字符串,时间戳以毫秒为单位
moment().valueOf('x') // 返回 数字,时间戳以毫秒为单位
九、当前年月日时分秒
moment().toArray() // 返回数组,[2020, 8, 27, 17, 40, 19, 364]
moment().toObject() // 返回对象,{date: 27, hours: 17, milliseconds: 364, minutes: 40, months: 8, seconds: 19, years: 2020}
十、设置时间
1、设置年份(月(month)、天(date)、星期(weekday/isoWeekday)、小时(hours)、分钟(minutes)、秒(seconds)同理)
moment().year(2019) // 返回 Moment对象, 为2019年
moment().set('year', 2019)
moment().set({year: 2019})
moment().add(1, 'years') / moment().add({years: 1}) // 返回 Moment对象, 今年2020年,返回2021年
moment().subtract(1, 'years') / moment().subtract({years: 1}) // 返回 Moment对象, 今年2020年,返回2021年
十一、转化为JavaScript 原生Date对象
moment().toDate()
new Date(moment())
十二、比较
moment().diff(Moment | String | Number | Date | Array)
十三、需要获取任意一天的起始和结束时间,0点和23:59:59这两个时间的时间戳
1、获取任意一天的开始时间
// time为某一天的时间戳 startTime(time) { const timeDate = new Date(time) return timeDate.setHours(0, 0, 0, 0) }
2、 获取任意一天的结束时间
endTime(time) { const timeDate = new Date(time) return timeDate.setHours(23, 59, 59, 999) }
3、时间格式化转换实用方法
export const formatDate = (timestamp, fmt) => { if (timestamp === null) { return null } if (typeof (timestamp) === 'string' && !/^\d*$/.test(timestamp)) { let lastIndexOf = timestamp.lastIndexOf('.') if (lastIndexOf > 0) { // 去掉毫秒,不然转成Date对象会报错 timestamp = timestamp.substring(0, lastIndexOf) } timestamp = timestamp.replace(/-/g, '/') } let date = new Date(timestamp) let o = { 'M+': date.getMonth() + 1, // 月份 'd+': date.getDate(), // 日 'h+': date.getHours(), // 小时 'm+': date.getMinutes(), // 分 's+': date.getSeconds(), // 秒 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 'S': date.getMilliseconds() // 毫秒 }; let result = fmt; if (/(y+)/.test(result)) { result = result.replace(RegExp.$1, (date.getFullYear().toString()).substr(4 - RegExp.$1.length)); } for (let k in o) { if (new RegExp(`(${k})`).test(result)) { result = result.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(o[k].toString().length)); } } return result; }
//formatDate(new Date().setHours(0, 0, 0, 0), 'yyyy-MM-dd hh:mm')---》 当天0时0分的时间
//formatDate(new Date().setHours(23, 59, 59, 999), 'yyyy-MM-dd hh:mm')---》 当天23时59分的时间