日期计算器在线工具 - 免费计算天数差与日期加减
在日常开发和工作中,我们经常需要计算两个日期之间相隔多少天、某个日期加上 90 天后是哪一天、或者推算某个项目的截止日期。手动数日历不仅低效,还容易出错。jsjson.com 日期计算器 是一款免费的在线日期计算工具,支持日期差计算、日期加减运算和工作日推算,所有计算在浏览器本地完成,无需安装任何软件。
📋 日期计算器的使用场景
场景一:项目周期与里程碑管理
项目经理在制定排期时,需要精确计算从需求评审到上线发布之间的工作日天数。使用日期天数差计算工具,输入起止日期后,工具会同时显示总天数、周数、月数以及排除周末后的工作日数,帮助你快速制定合理的项目计划。
场景二:合同与协议到期推算
HR 和法务人员经常需要计算合同签订日期加上 N 个月后的具体日期是哪天。例如,一份从 2026-01-15 开始的 12 个月劳动合同,到期日是什么时候?使用日期加减计算器,选择基准日期后加 12 个月,瞬间得到结果日期和对应的星期。
场景三:生日倒计时与纪念日推算
想知道距离某个重要日期还有多少天?或者想知道 100 天后是什么日子?日期在线计算工具可以帮你快速算出。设置"今天"为开始日期,输入目标日期,立即看到倒计时天数。
🔧 如何使用 jsjson.com 的日期计算器
访问 jsjson.com/tools/date-calculator,工具提供两大核心功能:
功能一:日期差计算
第一步:选择开始日期
在"开始日期"输入框中选择起始日期,也可以点击"开始=今天"快捷按钮。
第二步:选择结束日期
在"结束日期"输入框中选择截止日期,同样支持"结束=今天"快捷设置。
第三步:查看计算结果
选择完两个日期后,工具会自动计算并显示以下结果:
- 相隔天数 — 两个日期之间的总天数
- 相隔周数 — 换算为周 + 剩余天数
- 相隔月数 — 换算为月 + 剩余天数
- 相隔小时 / 分钟 — 精确到分钟的时间差
- 工作日天数 — 排除周六、周日后的工作日数
如果需要调整顺序,点击"互换日期"按钮即可快速交换开始和结束日期。
功能二:日期加减计算
第一步:选择基准日期
输入一个起始日期,也可以使用"今天"“昨天”“明天”“上周”“下周”“上月”"下月"等快捷按钮快速选择。
第二步:设置加减参数
选择"加"或"减"操作,输入数值,并选择单位(天、周、月、年)。
第三步:点击计算
工具会立即显示结果日期以及对应的星期几。例如,输入 2026-01-01 加 90 天,结果为 2026-04-01 星期三。
💡 日期计算实用技巧
技巧一:用 JavaScript 计算日期差
如果你需要在代码中计算两个日期之间的天数差,可以使用原生 JavaScript:
function daysBetween(date1, date2) {
const d1 = new Date(date1);
const d2 = new Date(date2);
const diffMs = Math.abs(d2.getTime() - d1.getTime());
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
}
console.log(daysBetween('2026-01-01', '2026-12-31')); // 364
如果需要更精确的日期差计算(考虑时区和夏令时),建议使用 jsjson.com 日期计算器 在线验证结果。
技巧二:计算工作日天数
在项目管理中,工作日比自然日更有参考价值。以下是一个计算工作日的 JavaScript 函数:
function countWorkdays(startDate, endDate) {
let count = 0;
const current = new Date(startDate);
const end = new Date(endDate);
while (current <= end) {
const day = current.getDay();
if (day !== 0 && day !== 6) count++; // 排除周六和周日
current.setDate(current.getDate() + 1);
}
return count;
}
// 计算 2026-06-01 到 2026-06-30 的工作日数
console.log(countWorkdays('2026-06-01', '2026-06-30')); // 22
注意:此方法仅排除周末,不包含法定节假日。如需精确的中国法定工作日计算,还需结合调休日历。
技巧三:日期加减的最佳实践
在 JavaScript 中进行日期加减时,Date 对象会自动处理月末溢出:
const date = new Date('2026-01-31');
// 加 1 个月 — 自动处理月末
date.setMonth(date.getMonth() + 1);
console.log(date.toISOString().split('T')[0]); // 2026-02-28(非闰年)
// 加 90 天
const d2 = new Date('2026-01-01');
d2.setDate(d2.getDate() + 90);
console.log(d2.toISOString().split('T')[0]); // 2026-04-01
使用 jsjson.com 日期计算器 的日期加减功能,可以快速验证你的代码计算逻辑是否正确。
技巧四:计算年龄和工龄
基于日期差计算,可以轻松算出精确年龄:
function calculateAge(birthDate) {
const today = new Date();
const birth = new Date(birthDate);
let age = today.getFullYear() - birth.getFullYear();
const monthDiff = today.getMonth() - birth.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {
age--;
}
return age;
}
console.log(calculateAge('1995-08-15')); // 取决于当前日期
技巧五:利用时间戳进行精确计算
当需要精确到毫秒级的时间差计算时,使用时间戳是最可靠的方式:
const start = new Date('2026-06-14T09:00:00').getTime();
const end = new Date('2026-06-14T17:30:00').getTime();
const diffMs = end - start;
const hours = Math.floor(diffMs / (1000 * 60 * 60));
const minutes = Math.floor((diffMs % (1000 * 60 * 60)) / (1000 * 60));
console.log(`相差 ${hours} 小时 ${minutes} 分钟`); // 相差 8 小时 30 分钟
如果你需要在时间戳和日期之间互相转换,可以配合 jsjson.com 时间戳转换工具 使用。
❓ 常见问题 FAQ
Q1:日期差计算结果准确吗?
准确。jsjson.com 日期计算器 使用 JavaScript 原生 Date 对象计算两个时间戳的毫秒差,再转换为天数、周数、月数等。工作日计算会逐天判断是否为周末(周六、周日),结果精确可靠。
Q2:日期加减会自动处理月末吗?
会。例如从 1 月 31 日加 1 个月,结果会自动调整为 2 月 28 日(或闰年的 2 月 29 日)。这是 JavaScript Date 对象的标准行为,日期计算器完全遵循这一规则。
Q3:工作日计算包含法定节假日吗?
不包含。工作日计算仅排除周六和周日,不包含中国法定节假日和调休安排。如果你需要精确计算包含法定节假日的工作日天数,建议结合日历工具手动调整。
Q4:支持的日期范围是多少?
工具使用 HTML5 日期输入控件,支持的日期范围大约为 1900 年至 9999 年,覆盖绝大多数实际使用场景。不支持公元前的日期计算。
Q5:两个日期之间相隔 0 天是什么意思?
如果开始日期和结束日期是同一天,日期差为 0 天。这表示两个日期之间没有"间隔",但如果你计算的是"包含首尾两天"的范围,则是 1 天。根据具体业务需求,你可能需要在计算结果上加 1。
🔗 相关工具推荐
- 时间戳转换工具 — Unix 时间戳与日期时间互转,配合日期计算处理服务器端时间数据
- 时区转换工具 — 跨时区日期计算时,先做时区转换再算日期差
- 倒计时工具 — 设置目标日期后实时显示剩余时间,适合活动和项目倒计时
jsjson.com 日期计算器完全在浏览器本地运行,不会上传任何日期数据到服务器,保障你的隐私安全。如果你经常需要计算日期差或推算目标日期,建议将 日期计算器 添加到浏览器书签,随时取用。