妈妈再也不用担心我使用moment了
程序员文章站
2022-05-15 13:09:48
...
前言
日常开发中,我们经常会涉及到时间控件这个东西,这时候为了得到我们想要的时间格式,我们就会去对数据进行各种处理以便于得到我们想要的格式。下面记录一下常用的处理时间的方式(基于moment.js)。
Date对象
const date = new Date() // Date 对象会自动把当前日期和时间保存为其初始值。
date.valueOf() => 1617331224910
date(1617331224910) => Fri Apr 02 2021 10:40:24 GMT+0800 (中国标准时间)
关于moment.js
我们日常开发中更多使用到moment这个库来处理时间格式,下面记录下常用moment方法
- 获取当前时间对象
const date = moment() // 等同于moment(new Date()) || moment([]) || moment({}) || moment(undefined) 注:null不行
- 获取时间戳–转换时间戳为时间对象
1.获取时间戳(以秒为单位)
moment().format('X') // 返回值为字符串类型
moment().unix() // 返回值为数值型
moment.unix(Number) // 转换时间戳为时间对象---秒
2.获取时间戳(以毫秒为单位)
moment().format('x') // 返回值为字符串类型
moment().valueOf() // 返回值为数值型
+moment() // 返回值为数值型
moment(Number) // 转换时间戳为时间对象---毫秒
- 获取时间(一天的开始和结束)
1.获取今天0时0分0秒
moment().startOf('day')
2.获取本周第一天(周日)0时0分0秒
moment().startOf('week')
3.获取当前月第一天0时0分0秒
moment().startOf('month')
4.获取今天23时59分59秒
moment().endOf('day')
5.获取本周最后一天(周六)23时59分59秒
moment().endOf('week')
6.获取当前月最后一天23时59分59秒
moment().endOf('month')
- 获取当前月的总天数
moment().daysInMonth()
- 获取时间 设置时间
moment().get('year');
moment().get('month'); // 0 至 11
moment().get('date');
moment().get('hour');
moment().get('minute');
moment().get('second');
moment().get('millisecond');
moment().set('year', 2013);
moment().set('month', 3); // 四月
moment().set('date', 1);
moment().set('hour', 13);
moment().set('minute', 20);
moment().set('second', 30);
moment().set('millisecond', 123);
moment().set({'year': 2013, 'month': 3});
- **增加、减少时间改变原始moment **
增加方法add 减少subtract 两者使用方法一样
1.设置年
moment().add(1, 'years')
moment().add({years: 1})
2.设置月
moment().add(1, 'months')
3.设置日期
moment().add(1, 'days')
4.设置星期
moment().add(1, 'weeks')
5.设置小时
moment().add(1, 'hours')
6.设置分钟
moment().add(1, 'minutes')
7.设置秒数
moment().add(1, 'seconds')
- 格式化时间
1.格式化年月日: 'xxxx年xx月xx日'
moment().format('YYYY年MM月DD日')
2.格式化年月日: 'xxxx-xx-xx'
moment().format('YYYY-MM-DD')
3.格式化时分秒(24小时制): 'xx时xx分xx秒'
moment().format('HH时mm分ss秒')
4.格式化时分秒(12小时制):'xx:xx:xx am/pm'
moment().format('hh:mm:ss a')
5.格式化时间戳(以秒为单位)
moment().format('X') // 返回值为字符串类型
6.格式化时间戳(以毫秒为单位)
moment().format('x') // 返回值为字符串类型
- 获取两个日期之间的时间差
let start = moment().subtract(1, 'weeks')
let end = moment()
end.diff(start) // 返回毫秒数
end.diff(start, 'months') // 0
end.diff(start, 'weeks') // 1
end.diff(start, 'days') // 7
start.diff(end, 'days') // -7
- 判断时间是否在另一个时间之前或之后或相同
isBefore
:检查一个 moment 是否在另一个 moment 之前
isSame
:检查一个 moment 是否与另一个 moment 相同
isAfter
:检查一个 moment 是否在另一个 moment 之后
isSameOrBefore
:检查一个 moment 是否在另一个 moment 之前或与之相同
isSameOrAfter
:检查一个 moment 是否在另一个 moment 之后或与之相同
moment().isBefore(Moment|String|Number|Date|Array);
moment().isBefore(Moment|String|Number|Date|Array, String);
moment('2010-10-20').isBefore('2010-10-21'); // true
// 第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期
moment('2010-10-20').isBefore('2010-12-31', 'year'); // false
moment('2010-10-20').isBefore('2011-01-01', 'year'); // true
isBetween
:检查一个 moment 是否在其他两个 moment 之间
moment().isBetween(moment-like, moment-like, String, String);
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常用的一些方法,希望给各位带来一些帮助。
上一篇: 关于docker挂载文件的生效问题的疑惑
下一篇: 妈妈再也不用担心我不会webpack了