定义
方法 | 含义 | 是否包含相等 | 是否支持精度参数 |
---|---|---|---|
isAfter() | 当前日期是否在目标日期之后 | 否 | 是 |
isBefore() | 当前日期是否在目标日期之前 | 否 | 是 |
isSameOrAfter() | 当前日期是否等于或在目标之后 | 是 | 是 |
isSameOrBefore() | 当前日期是否等于或在目标之前 | 是 | 是 |
用法
const dayjs = require('dayjs');// 创建三个日期实例
const date1 = dayjs('2023-10-05');
const date2 = dayjs('2023-10-05'); // 与 date1 相同
const date3 = dayjs('2023-10-06'); // 比 date1 晚一天// 基础比较
console.log(date1.isSameOrAfter(date2)); // true(完全相同)
console.log(date1.isAfter(date2)); // false(不包含相等)
console.log(date3.isAfter(date1)); // true(严格之后)
console.log(date1.isSameOrBefore(date3)); // true(更早)
精度参数比较
精度参数允许按特定单位(如 year
、month
、day
、hour
等)进行比较。
const date4 = dayjs('2023-10-05 10:00');
const date5 = dayjs('2023-10-05 12:00');// 按天比较(忽略时间)
console.log(date4.isSameOrBefore(date5, 'day')); // true(同一天)
console.log(date4.isBefore(date5, 'hour')); // true(10 < 12)// 按月份比较
const date6 = dayjs('2023-10-01');
const date7 = dayjs('2023-10-31');
console.log(date6.isSameOrBefore(date7, 'month')); // true(同为10月)
console.log(date6.isBefore(date7, 'day')); // true(日期更早)
边界情况
const date8 = dayjs('2022-10-05');
const date9 = dayjs('2023-10-05');console.log(date8.isSameOrAfter(date9, 'month')); // false(年份不同)
console.log(date8.isSameOrAfter(date9, 'year')); // false(2022 < 2023)
console.log(date8.isBefore(date9, 'day')); // true(日期相同但年份更早)