》约束:结束时间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 }