JavaScript 日期计算 计算天数,年数,月数
·
注意事项:
首先先将日期转换成
yyyy-mm-dd
的格式,例如:2025-01-24
然后进行类的转换
let date1 = new date("2025-01-24");
let date1 = new date("2025-01-25");
调用函数时可以转换类型
let youstr = getDaynum(date1, date2).toString();//字符串
let younum = getDaynum(date1, date2).toNumber();//数字
然后调用如下代码:
计算天数(包含开始天和结束天):
//获取两个date类型数据的天数,包括结束时间和开始时间
function getDaynum(date1, date2) {
let timeDifference = date2 - date1;
// 将毫秒转换为天数(1天 = 24小时 * 60分钟 * 60秒 * 1000毫秒)
let daysBetween = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // 使用Math.ceil包含结束日期
daysBetween += 1;
return new BigNumber(daysBetween);
}
计算月数(包含开始月和结束月):
//获取两个date类型数据的月数,包括结束时间和开始时间
function getMonthsnum(date1, date2) {
// 提取年份和月份
let year1 = date1.getFullYear();
let month1 = date1.getMonth(); // 注意:getMonth() 返回的月份是从0开始的(0-11)
let year2 = date2.getFullYear();
let month2 = date2.getMonth();
// 计算年份差和月份差
let yearsBetween = year2 - year1;
let monthsBetween = month2 - month1;
// 如果结束日期的月份小于开始日期的月份,则需要从年份差中借一年(12个月)
if (monthsBetween < 0) {
yearsBetween--;
monthsBetween += 12;
}
// 由于我们要求包含这两个月,所以不需要对月份差进行任何舍入
// 只需要确保加上年份差带来的完整月份数
let totalMonths = yearsBetween * 12 + monthsBetween + 1; // 加1是因为包含结束月份
return new BigNumber(totalMonths);
}
计算年数(包含开始年和结束年):
//获取两个date类型数据的年数,包括结束时间和开始时间
function getYearsnum(date1, date2) {
// 提取年份和月份
let year1 = date1.getFullYear();
let year2 = date2.getFullYear();
let yearss = year2 - year1 + 1;
return new BigNumber(totalMonths);
}
返回类型的说明:
由于用JavaScript计算的时候会出现

这种情况,所以我用了bignumber.js的高精度库
具体使用方式网上搜
这里给个我下载的链接
bignumber.js: bignumber.js 用于任意精度十进制和非十进制运算的 JavaScript 库 (gitee.com)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)