微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用来计算时间差的js代码片段

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

 
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+"天";
        }
    }
}

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐