javascript 计算月差

本文介绍了一种新的计算两个日期间月份数的方法,避免了传统毫秒数差值法因月份天数不同带来的误差。通过年份和月份的转换,结合日期差值判断,实现更准确的月份数计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前计算月差的时候,一般都是获得两个日期的毫秒数之差,然后 /1000/60/60/24/30。最后就得到了一个结果。但是这个结果会有一个问题。有的时候一个月会有 31 天、28天、29天,这1、2天就会根据两个日期的差值或多或少的加在里面,就会给带来问题。下面的这种方式就不会了。

endDate = new Date("2009/1/28"); 

startDate = new Date("2008/11/28"); 

number = 0; 

yearToMonth = (endDate.getFullYear() - startDate.getFullYear()) * 12; 

number += yearToMonth; 

monthToMonth = endDate.getMonth() - startDate.getMonth(); 

number += monthToMonth; 

endDay = endDate.getDate(); 

startDay = startDate.getDate(); 

dayStep = endDay - startDay; 

if (dayStep >= 0) { 

    if (dayStep >= 15) { 

        number += 1; 

    } 

} else { 

    if (dayStep <= -15) { 

        number -= 1; 

    } 

} 

alert(number); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值