日常开发中,我们经常会遇到对时间的处理,如果我们手动去转换处理可能会相当的不方便,也会产生很多的问题,刚好市面上流行的几个js日期库我们刚好可以用来使用,常见的dayjs;date-fns;moment.js。那么本文我们总结一下moment在项目应用中的方法。
1.引入moment
import * as moment from 'moment'
2.使用moment
let date = moment(new Date()).format('YYYY-MM-DD') //格式化对应的类型 2021-01-23
3.moment使用详解释
- 当前时间
moment().format('YYYY-MM-DD HH:mm:ss'); // 转换成对应的年月日时分秒 2021-01-23 16:38:22
-查询当天日期
moment().format('d') //6
-转换当前Unix时间戳
moment().format('X') // "1611392145"
相对时间
-
判断一个时间跟当前时间的相对差值
moment('19921214','YYYYMMDD').fromNow(); //'28 years ago'
-
6天前的日期
moment().subtract('days',6).format('YYYY-MM-DD') //'2021-01-17'
-
3天后的日期
moment().add('days,3').format('YYYY-MM-DD') //"2021-01-26" 对三天后就是我的生日 哈哈哈
-
一个小时前的时间
moment().subtract('hours',1).format(HH:mm:ss) // "16:10:12"
-
一个小时后的时间
moment().add('hours',1).format(HH:mm:ss) // "18:10:32" 下班了
4.时间格式参数
5.写法示例
-
创建
moment() // 当前时间
moment("1993-12-15") // 1993-12-15
moment("12-25-1995", "MM-DD-YYYY") // 1995-12-25
moment({ year :2010, month :3, day :5, hour :15, minute :10, second :3, millisecond :123})
moment(Date.now() - 24 * 60 * 60 * 1000) // 昨天
moment(new Date(2011, 9, 16)) // 2011-10-16
-
格式化
moment().format('YYYY年MM月DD日 HH:mm:ss') // 2016年11月11日 22:05:19
moment().format('hh:m:ss') // 10:5:19
moment().format('[YYYY]') // "YYYY"。[] 里的会原样输出
-
转换成Date对象
moment().toDate() //Sat Jan 23 2021 17:16:22 GMT+0800 (中国标准时间)
-
获取/设置时间信息
moment().second() //获得 秒
moment().second(Number) //设置 秒。0 到 59
moment().minute() //获得 分
moment().minute(Number) //设置 分。0 到 59
// 类似的用法
moment().hour() // 小时
moment().date() // 一个月里的第几天
moment().day() // 星期几
moment().dayOfYear() // 一年里的第几天
moment().week() // 一年里的第几周
moment().month() // 第几个月
moment().quarter() // 一年里的第几个季度
moment().year() // 年
moment().daysInMonth() // 当前月有多少天
moment("2022-02", "YYYY-MM").daysInMonth() //获取指定月份的天数。28
-
操作
moment().add(7, 'days') // 之后的第7天。第2个参数还可以是 'months', 'years' 等。注意是复数。
moment().add(7, 'd')// 与上面一行代码的运行结果一样。
moment().subtract(1, 'months') // 上个月
moment().startOf('week') // 这周的第一天
moment().startOf('hour') // 等效与 moment().minutes(0).seconds(0).milliseconds(0)。
// 还支持 'year','month' 等
moment().endOf('week')
moment().daysInMonth() //获取当前月的天数
-
查询
// 早于
moment('2010-10-20').isBefore('2010-10-21') // true
moment('2010-10-20').isBefore('2010-12-31', 'year') // false
moment('2010-10-20').isBefore('2011-01-01', 'year') // true
// 是否相等
moment('2010-10-20').isSame('2010-10-20') // true
moment('2010-10-20').isSame('2009-12-31', 'year') // false
moment('2010-10-20').isSame('2010-01-01', 'year') // true
// 晚于
moment('2010-10-20').isAfter('2010-10-19') // true
moment('2010-10-20').isAfter('2010-01-01', 'year') // false
moment('2010-10-20').isAfter('2009-12-31', 'year') // true
// 是否在时间范围内
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // true
moment().isLeapYear() // 是否是闰年