js计算两个时间相差月份

》约束:结束时间endTime>开始时间startTime

》思路:之前总是会遗漏掉很多种情况,所以列举出各种情况,发现其规律:

1.年-月:(endTime.getYear()-startTime.getYear())*12

2.月-月:endTime.getMonth()-startTime.getMonth(),该情况会出现负数情况

3.日-月:该例中时间具体到分,先将小时和分换算成天,再统计成月。

    如果 endTime.getDate()>=startTime.getDate(),则为0,否则为-1

》代码实现

 1 function monDiff(startTime,endTime){
 2     startTime=new Date(startTime);
 3     endTime=new Date(endTime);
 4     var date2Mon;
 5      var startDate=startTime.getDate()+startTime.getHours()/24+startTime.getMinutes()/24/60;
 6     var endDate=endTime.getDate()+endTime.getHours()/24+endTime.getMinutes()/24/60;
 7     if(endDate>=startDate){
 8         date2Mon=0;
 9     }else{
10         date2Mon=-1;
11     }
12     return (endTime.getYear-startTime.getYear())*12+endTime.getMonth-startTime.getMonth()+date2Mon;
13 }

猜你喜欢

转载自www.cnblogs.com/Demetris/p/11531990.html