清華大佬耗費三個月吐血整理的幾百G的資源,免費分享!....>>>
function dealDate(date1,date2){ date1 = new Date(date1);//如果傳進來的是"yyyy-MM-dd"形式的字符串 date2 = new Date(date2); var year1 = date1.getFullYear(); var month1 = date1.getMonth()+1; var day1 = date1.getDate(); var dateMax1 = new Date(year1,month1,0); var dayMax1 = dateMax1.getDate(); var year2 = date2.getFullYear(); var month2 = date2.getMonth()+1; var day2 = date2.getDate(); var dateMax2 = new Date(year2,month2,0); var dayMax2 = dateMax2.getDate(); if(day1==dayMax1&&day2==dayMax2){ //開始日期和結束日期都是月底 //直接計算月份差,推算幾年幾個月 var res = (year2-year1)*12+(month2-month1);//月份差 var difYear = Math.floor(res/12); var difMonth = res%12; return ((difYear!=0)?(difYear+"年"):"")+difMonth+"個月"; }else if(day1==dayMax1&&day2<dayMax2){ //開始日期是月底,結束日期不是 //計算開始日期到結束日期上一個月的月底,再加上結束日期的天數 var month3 = month2-1; var res = (year2-year1)*12+(month3-month1);//月份差 var difYear = Math.floor(res/12); var difMonth = res%12; var difDay = day2; return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個月"):"")+difDay+"天"; }else if(day1<dayMax1&&day2<dayMax2){ //開始日期和結束日期都不是月底 //情況1,day1<day2 if(day1<=day2){ var res = (year2-year1)*12+(month2-month1);//月份差 var difYear = Math.floor(res/12); var difMonth = res%12; var difDay = day2-day1; return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個月"):"")+difDay+"天"; }else{ var month3 = month2-1; var res = (year2-year1)*12+(month3-month1);//月份差 var difYear = Math.floor(res/12); var difMonth = res%12; var difDayTemp = day1-day2; var dateMax3 = new Date(year2,month3,0); var dayMax3 = dateMax3.getDate(); var difDay = dayMax3-difDayTemp; return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個月"):"")+difDay+"天"; } } }