momentjs 两个时间比较大小

0 阅读2分钟

isSameisBeforeisAfter去比较

isBefore

检查某个moment是否在另外一个moment之前:

moment('2025-07-04').isBefore('2025-06-03'); // true

➕粒度限制(year month week isoWeek day hour minute second):

moment('2025-07-04').isBefore('2025-06-03', 'year'); // false
moment('2025-07-04').isBefore('2024-06-03', 'year'); // true

isSame

moment('2025-07-04').isSame('2025-06-03'); // false
moment('2025-07-04').isSame('2025-06-03', 'month'); // false, 月份不同
moment('2025-07-04').isSame('2025-06-03', 'year'); // true, 年份相同
moment('2025-07-04').isSame('2025-06-03', 'day'); // false, 天不同

isAfter

moment('2025-07-04').isAfter('2025-06-03'); // true

也可以粒度去比价,跟上面类似,就不多写了。

总示例

moment('2025-07-04').isSame(moment(), 'days')
moment('2025-07-04').isBefore(moment(), 'days')
moment('2025-07-04').isAfter(moment(), 'days')

不同格式:

const format = 'MM/D/YYYY'

const moment1 = moment('07/04/25',format);
const moment2 = moment('07/04/25',format);

moment1.isSame(moment2,'day') // true
moment1.isSame(moment2,'date') // true

用diff去比较两个时间,得到正负 0是相等

const format = "HH:mm:ss MM/D/YYYY"
const startTime = moment('14:43:00 07/04/25', format);
const endTime = moment('14:43:00 07/04/25', format);

const diff1 = moment(endTime).diff(moment(startTime), 'years')
const diff2 = moment(endTime).diff(moment(startTime), 'months')
const diff3 = moment(endTime).diff(moment(startTime), 'days')
const diff4 = moment(endTime).diff(moment(startTime), 'minutes')
const diff5 = moment(endTime).diff(moment(startTime), 'seconds')
let days = moment('2025-07-04').diff(moment('2025-07-01'), 'days')
// 相隔天数会把最后一天 也就是 7月4号也算上