由于需要在前端判断两个日期相差的具体天数,然而js中没有类似java Calendar的类,在网上查找方案并稍作修改后,得出以下方法
function dateDiff(d1,d2,str){
d1 = new Date(d1.replace(/-/g,'/'));
d2 = new Date(d2.replace(/-/g,'/'));
var obj={},M1=d1.getMonth(),D1=d1.getDate(),M2=d2.getMonth(),D2=d2.getDate();
obj.Y=d2.getFullYear() - d1.getFullYear() + (M1*100+D1 > M2*100+D2 ? -1 : 0);
obj.M=(obj.Y > 0 ? obj.Y * 12 : 12) + M2 - M1 + (D1 > D2 ? -1 : 0);
obj.s=Math.floor((d2-d1)/1000);//差几秒
obj.m=Math.floor(obj.s/60);//差几分钟
obj.h=Math.floor(obj.m/60);//差几小时
obj.D=Math.floor(obj.h/24);//差几天
return str.replace(/\w/g,function(a){
return obj[a] ? obj[a]:a;
});
}
dateDiff("2008-01-01","2019-01-01","相差Y年M月D天");