当前位置:编程学习 > JS >>

使用js算出两个月之间差几个月

项目需求,算出两个月之间差几个月,不足一月按一个月算,即8月1日到9月2日就算两个月了,8月1日到9月1日就算一个月了,从网上找点资料,接合自己的需求,写出自己的js方法,现提供出来,供大家参考,例如开始日期为20110801,截止日期为20110902
Java代码 
function setRateValidity(){ 
    var beginDate = document.getElementById("crlimit:beginDate").value; 
    var endDate = document.getElementById("crlimit:endDate").value; 
    if(beginDate!=""&&endDate!=""&&endDate>=beginDate&&(endDate-beginDate)<=10000){ 
        var startDate = new Date(beginDate.substr(0,4),beginDate.substr(4,2)-1,beginDate.substr(6,2));//月份是从0开始算的 
        var startDateUTC = Date.UTC(startDate.getFullYear(),startDate.getMonth(),startDate.getDate()); 
        var end = new Date(endDate.substr(0,4),endDate.substr(4,2)-1,endDate.substr(6,2)); 
        var endDateUTC = Date.UTC(end.getFullYear(),end.getMonth(),end.getDate());        var workmonthnum = 0; 
        for (var i=startDateUTC;i<=endDateUTC ; i=i+86400000 ){ 
             var days = new Date(i); 
                    if (days.getDate()==1){ 
                    workmonthnum++; 
                     } 
            } 
        if(beginDate.substr(6,2)=='01'&&endDate.substr(6,2)=='01'){ 
            workmonthnum = workmonthnum -1; 
        } 
        if(beginDate.substr(0,4)==endDate.substr(0,4)&&beginDate.substr(4,2)==endDate.substr(4,2)){ 
            workmonthnum = 1; 
        }    
        document.getElementById("crlimit:rateValidity").value = workmonthnum; 
        } 

作者“weidongke123-126-com”
 

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,