平时在工作中经常需要对时间进行处理,用momentjs 可以快速又方便的对时间格式进行处理
1. let time = moment() //输出当前国际化时间 相当于 newDate()
2.let time = moment(X).format('YYYY-MM-DD HH:mm:ss')
X可以不传,如果不传的话格式化当前时间并按 YYYY-MM-DD 格式输出
X可以为时间戳,如果传时间戳,要传13位毫秒的时间戳
X可以为new Date()的时间格式即 Tue Aug 24 2021 23:05:56 GMT+0800
时间格式化的令牌
3.let timer = moment().unix() //输出当前时间的秒数10位时间戳
4.let timer = moment().valueOf() //输出当前时间的毫秒数13位时间戳
4.let timer = moment().add(数量,'令牌')
例如: moment.add(7,'days') // 在当前时间增加7天后的时间
subtract() 与add() 用法相同意思相反,在当前时间减去某段时间
moment.subtract(7,'days')
5.设置时间的开头或者结束
startOf()
通过将原始的 moment 设置为时间单位的开头来对其进行更改。
moment().startOf('year'); // 设置为今年一月1日上午 12:00
moment().startOf('month'); // 设置为本月1日上午 12:00
moment().startOf('quarter'); // 设置为当前季度的开始,即每月的第一天上午 12:00 moment().startOf('week'); // 设置为本周的第一天上午 12:00
moment().startOf('isoWeek'); // 根据 ISO 8601 设置为本周的第一天上午 12:00 moment().startOf('day'); // 设置为今天上午 12:00
moment().startOf('date'); // 设置为今天上午 12:00
moment().startOf('hour'); // 设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒 moment().startOf('minute'); // 设置为当前时间,但是 0 秒钟、0 毫秒
moment().startOf('second'); // 与 moment().milliseconds(0); 相同
通过将原始的 moment 设置为时间单位的末尾来对其进行更改。
endOf()
这与 moment#startOf 相同,只是将其设置为时间单位的末尾,而不是设置为时间单位的开头
moment().endOf("year"); // 将 moment 设置为今年的 12 月 31 日 23:59:59.999
7.计算两段时间的差值
diff()
moment().diff(Moment|String|Number|Date|Array);
moment().diff(Moment|String|Number|Date|Array, String);
moment().diff(Moment|String|Number|Date|Array, String, Boolean);
获取以毫秒为单位的差异
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
要获取另一个度量单位中的差异,则将该度量作为第二个参数传入。
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
默认情况下,moment#diff
会将结果截断为零个小数位,并返回一个整数。 如果需要浮点数,则将 true
作为第三个参数传入。 在 2.0.0 之前,moment#diff
返回的数字会四舍五入到最接近的整数,而不是截断的数字。
var a = moment([2008, 9]);
var b = moment([2007, 0]);
a.diff(b, 'years'); // 1
a.diff(b, 'years', true); // 1.75
令牌如下: