Skip to content

日期

DateUtils 是一个用于处理日期和时间的工具类,提供了多种方法来格式化、解析、比较和操作日期。

format

作用: 将日期对象、时间戳或日期字符串格式化为指定格式的字符串。

示例:

ts
console.log(DateUtils.format(new Date(), 'YYYY-MM-DD HH:mm:ss'));
console.log(DateUtils.format(1700000000000, 'YYYY/MM/DD'));
console.log(DateUtils.format('2025-03-21', 'MM-DD-YYYY'));

parse

作用: 将符合指定格式的字符串解析为 Date 对象。

示例:

ts
const date = DateUtils.parse('2025/03/21', 'YYYY/MM/DD');
console.log(date);

compare

作用: 比较两个日期的时间先后,返回正数、负数或 0。

示例:

ts
console.log(DateUtils.compare('2025-03-21', '2025-03-22')); // -86400000
console.log(DateUtils.compare(new Date(), new Date())); // 0

add

作用: 对指定日期进行加减运算。

示例:

ts
console.log(DateUtils.add('2025-03-21', 1, 'day')); // 增加 1 天
console.log(DateUtils.add(new Date(), -1, 'month')); // 减少 1 个月

diff

作用: 计算两个日期之间的差值。

示例:

ts
console.log(DateUtils.diff('2025-03-21', '2025-03-22', 'day')); // 1
console.log(DateUtils.diff('2025-01-01', '2025-12-31', 'month')); // 11

isValid

作用: 检查给定的值是否是有效日期。

示例:

ts
console.log(DateUtils.isValid('2025-03-21')); // true
console.log(DateUtils.isValid('invalid-date')); // false

isLeapYear

作用: 判断某一年是否为闰年。

示例:

ts
console.log(DateUtils.isLeapYear(2024)); // true
console.log(DateUtils.isLeapYear(2025)); // false

getDaysInMonth

作用: 获取指定年月的天数。

示例:

ts
console.log(DateUtils.getDaysInMonth(2024, 1)); // 29(闰年 2 月)
console.log(DateUtils.getDaysInMonth(2025, 2)); // 28

getDateRange

作用: 返回两个日期之间的所有日期数组。

示例:

ts
console.log(DateUtils.getDateRange('2025-03-21', '2025-03-25'));

getRelativeTime

作用: 返回基于当前时间的相对时间描述,例如“刚刚”、“3 天前”。

示例:

ts
console.log(DateUtils.getRelativeTime(new Date())); // 刚刚
console.log(DateUtils.getRelativeTime('2025-03-19')); // 2 天前

startOfDay

作用:
获取指定日期的开始时间,即 00:00:00.000

示例:

ts
console.log(DateUtils.startOfDay(new Date())); 
// 输出示例:2025-03-21T00:00:00.000Z

endOfDay

作用:
获取指定日期的结束时间,即 23:59:59.999

示例:

ts
console.log(DateUtils.endOfDay(new Date())); 
// 输出示例:2025-03-21T23:59:59.999Z

startOfMonth

作用:
获取指定日期所在月份的第一天,并将时间设为 00:00:00.000

示例:

ts
console.log(DateUtils.startOfMonth(new Date())); 
// 输出示例:2025-03-01T00:00:00.000Z

endOfMonth

作用:
获取指定日期所在月份的最后一天,并将时间设为 23:59:59.999

示例:

ts
console.log(DateUtils.endOfMonth(new Date())); 
// 输出示例:2025-03-31T23:59:59.999Z

getQuarter

作用:
获取指定日期所在的季度(1-4)。

示例:

ts
console.log(DateUtils.getQuarter(new Date())); 
// 输出示例:1(第一季度)

isWorkday

作用:
判断指定日期是否为工作日(周一至周五为 true,周末返回 false)。

示例:

ts
console.log(DateUtils.isWorkday('2025-03-21')); // true(星期五)
console.log(DateUtils.isWorkday('2025-03-23')); // false(星期日)

getWorkdayCount

作用:
计算两个日期之间的工作日数量(不包括周六、周日)。

示例:

ts
console.log(DateUtils.getWorkdayCount('2025-03-18', '2025-03-24')); 
// 输出示例:5(如果 18-22 是工作日,23-24 是周末)

startOfWeek

作用:
获取指定日期所在周的周一,并将时间设为 00:00:00.000

示例:

ts
console.log(DateUtils.startOfWeek('2025-03-21')); 
// 输出示例:2025-03-17T00:00:00.000Z(如果 2025-03-21 是周五)

endOfWeek

作用:
获取指定日期所在周的周日,并将时间设为 23:59:59.999

示例:

ts
console.log(DateUtils.endOfWeek('2025-03-21')); 
// 输出示例:2025-03-23T23:59:59.999Z(如果 2025-03-21 是周五)

getAge

作用:
计算基于当前日期的年龄(按年份计算)。

示例:

ts
console.log(DateUtils.getAge('2000-03-21')); 
// 输出示例:25(如果当前是 2025-03-21)