语法:
moment().diff(Moment|String|Number|Date|Array, String, Boolean);
moment.diff()可以用于比较两个时间并返回差值,主要的参数有三个
- 第一个参数: 用于比较的时间值。这个时间的格式可以是
Moment|String|Number|Date|Array
这些格式中的任意一种,比如字符串类型的'2022-01-01'
- 第二个参数:差值的度量单位。支持的度量有
years、months、weeks、days、hours、minutes 和 seconds
,默认的单位是毫秒。 - 第三个参数:是否返回一个回浮点数。默认情况下,会将结果截断为零个小数位,并返回一个整数。 如果需要浮点数,则将 true 作为第三个参数传入。 在 2.0.0 之前,返回的数字会四舍五入到最接近的整数,而不是截断的数字。
注意:如果该时刻早于传给 moment.fn.diff 的时刻,则返回值为负数。
试一试
比较两个时间戳
new Date().getTime() // 1659366202661
new Date('2022-07-31').getTime() // 1659225600000
moment(new Date().getTime()).diff(new Date('2022-07-31').getTime()) // 140669686
以小时为度量单位比较
// 传入第二个参数以小时为度量单位
moment(new Date('2022-08-01 09:00')).diff('2022-08-01 08:00', 'hours') // 1
// 如果传入的时间早于diff函数的moment则返回一个负数
moment(new Date('2022-08-01 08:00')).diff('2022-08-01 09:00', 'hours') // -1
返回差值的浮点数
// 第三个参数设置为true
moment(new Date('2022-08-01 09:30')).diff('2022-08-01 08:00', 'hours', true) // 1.5