用isSame
、isBefore
、isAfter
去比较
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号也算上