欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

妈妈再也不用担心我使用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方法

  1. 获取当前时间对象
const date = moment() // 等同于moment(new Date()) || moment([]) || moment({}) || moment(undefined) 注:null不行
  1. 获取时间戳–转换时间戳为时间对象
1.获取时间戳(以秒为单位)
moment().format('X') // 返回值为字符串类型
moment().unix() // 返回值为数值型

moment.unix(Number) // 转换时间戳为时间对象---秒

2.获取时间戳(以毫秒为单位)
moment().format('x') // 返回值为字符串类型
moment().valueOf() // 返回值为数值型
+moment() // 返回值为数值型

moment(Number) // 转换时间戳为时间对象---毫秒
  1. 获取时间(一天的开始和结束)
1.获取今天000moment().startOf('day')

2.获取本周第一天(周日)000moment().startOf('week')

3.获取当前月第一天000moment().startOf('month')

4.获取今天235959moment().endOf('day')

5.获取本周最后一天(周六)235959moment().endOf('week')

6.获取当前月最后一天235959moment().endOf('month')
  1. 获取当前月的总天数
moment().daysInMonth() 
  1. 获取时间 设置时间
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});
  1. **增加、减少时间改变原始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. 格式化时间
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') // 返回值为字符串类型
  1. 获取两个日期之间的时间差
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
  1. 判断时间是否在另一个时间之前或之后或相同

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常用的一些方法,希望给各位带来一些帮助。