计算结果为几个月零几天
& lt; html> & lt; head> & lt; title>计算天数月& lt;/title> & lt;元charset=癎BK”比; & lt;脚本type=" text/javascript祝辞 函数dateU (date1 date2) {//date2-date1 var日元=数量(date1.substr(0, 4));//年 var y2=数量(date2.substr (0, 4)); var m1=数量(date1.substr(4,2));//月 var m2=数量(date2.substr (4,2)); var ym1=数量(date1.substr(0, 6));//年月 var ym2=数量(date2.substr (0, 6)); var d1=数量(date1.substr(2));//日 var d2=数量(date2.substr (2)); var=0; var月=0; var maxDay=[31日31日31日,28日,30日,30日,31日,31日,30日,31日,30日,31);//当月最大天数 var指数=0;//maxDay的数组编的号 而(ym1=d1){//年月相同且日2祝辞=日1 一天=d2-d1; 其他}{//年月相同且日2 & lt;日1,取上月最大天数计算 月,//最后月,不足一个月 如果(m2==1){//1月 指数=11;//取12个月的 }else if (m2==3){//2月 指数=1;//判断闰年否 如果(y2 % 100==0) { 如果(y2 % 400==0) { maxDay [1]=29; } }else if (y2 % 4==0) { maxDay [1]=29; } 其他}{ 指数=m2-1; } 一天=maxDay(指数)d1 + d2; } 返回月+”月零”+天+“天”; } 函数showMonthDay () { var date1=. getelementbyid (“date1”) value; var date2=. getelementbyid (“date2”) value; alert (dateU (date1 date2)); } & lt;/script> & lt;/head> & lt; body> & lt; div对齐="中心"祝辞& lt; br> 开始日期:& lt;输入id=" date1 " value=" https://www.yisu.com/zixun/20180707 "祝辞& lt;/br> 结束日期:& lt;输入id=" date2 " value=" https://www.yisu.com/zixun/20201201 "祝辞& lt;/br> & lt;输入类型="按钮" value=" https://www.yisu.com/zixun/计算“比; & lt;/div> & lt; hr> & lt; i> 版权(c) 2018 fhy 保留所有权利。 & lt;/i> & lt;/body> & lt;/html>
下面在通过一段代码看下js计算两个日期差
函数timeDifc(开始、结束){ 让=new日期(开始)开始,结束=新的日期(结束),消息="; 如果(starts.getTime()在ends.getTime ()) 返回消息="现在的时间小于以前的时间!”; 如果((ends.getTime ()——starts.getTime ())/(1000 * 60) & lt;1) 返回消息="刚刚”; 如果(ends.getFullYear()在starts.getFullYear (),,ends.getMonth()在=starts.getMonth ()) 消息+=ends.getFullYear ()——starts.getFullYear() +“年”; 如果(ends.getMonth()在starts.getMonth (),,ends.getDate()在=starts.getDate ()) 消息+=ends.getMonth ()——starts.getMonth() +“个月”; 如果(ends.getDate()在starts.getDate (),,ends.getHours()在=starts.getHours ()) 消息+=ends.getDate ()——starts.getDate() +“天”; 如果(ends.getHours()在starts.getHours (),,ends.getMinutes()在=starts.getMinutes ()) 消息+=ends.getHours ()——starts.getHours() +“小”时; 如果(ends.getMinutes()在starts.getMinutes ()) 消息+=ends.getMinutes ()——starts.getMinutes() +“分钟”; 返回消息; };//注:上边的变量是用让声明的(es6语法),下边是用巴贝尔编译后的 函数timeDifc(开始、结束){ var=new开始日期(开始), 结束=新的日期(结束), 消息="; 如果(starts.getTime()在ends.getTime())返回消息="现在的时间小于以前的时间!”; 如果((ends.getTime ()——starts.getTime ())/(1000 * 60) & lt;1)返回消息="刚刚”; 如果(ends.getFullYear()在starts.getFullYear (),,ends.getMonth()在=starts.getMonth())消息+=ends.getFullYear ()——starts.getFullYear() +“年”; 如果(ends.getMonth()在starts.getMonth (),,ends.getDate()在=starts.getDate())消息+=ends.getMonth ()——starts.getMonth() +“个月”; 如果(ends.getDate()在starts.getDate (),,ends.getHours()在=starts.getHours())消息+=ends.getDate ()——starts.getDate() +“天”; 如果(ends.getHours()在starts.getHours (),,ends.getMinutes()在=starts.getMinutes())消息+=ends.getHours ()——starts.getHours() +“小”时; 如果(ends.getMinutes()在消息+=ends.getMinutes starts.getMinutes ()) ()——starts.getMinutes() +“分钟”; 返回消息;};
在浏览器的主机中测试结果如下: