Js日期时间差计算和格式化

1.时间差计算

  var startDate = "2016-06-06";
            var endDate   = "2016-08-08";
            var start=new Date(startDate.replace("-", "/").replace("-", "/")); 
            var end=new Date(endDate.replace("-", "/").replace("-", "/"));
            if (startDate != "" || endDate != "") {
                if (startDate != "" && endDate != "" && endDate.length > 0 && start <= end) {
                    var sjc=end.getTime()-start.getTime();    //时间差的毫秒数  
                    var days=Math.floor(sjc/(24*3600*1000));  //计算出相差天数
                    
                    var leave1=sjc%(24*3600*1000);             //计算天数后剩余的毫秒数  
                    var hours=Math.floor(leave1/(3600*1000));  //计算出小时数  
                    
                    var leave2=leave1%(3600*1000);             //计算小时数后剩余的毫秒数  
                    var minutes=Math.floor(leave2/(60*1000));  //计算相差分钟数  
                    
                    var leave3=leave2%(60*1000);               //计算分钟数后剩余的毫秒数  
                    var seconds=Math.round(leave3/1000);       //计算相差秒数  
                    alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒");  
                    
                    var year1 =  startDate.substr(0,4);
                    var year2 =  endDate.substr(0,4); 
                    var month1 = startDate.substr(5,2);
                    var month2 = endDate.substr(5,2);
                    var len=(year2-year1)*12+(month2-month1); //计算出相差月份
                    
                }else {
                    alert("请输入正确的时间范围");
                    return false;
                }
            }

2.时间格式化

/**
         * 日期格式化
         * date:日期对象
         * format:时间格式
      * 引用  : deteFormat(new Date("2016-05-05 12:23:26"),"yyyy-MM-dd HH:mm:ss")
         */
        dateFormat:function (date,format) { //author: meizz 
            var o = {
                "M+": date.getMonth() + 1, //月份 
                "d+": date.getDate(), //
                "h+": date.getHours(), //小时 
                "m+": date.getMinutes(), //
                "s+": date.getSeconds(), //
                "q+": Math.floor((date.getMonth() + 3) / 3), //季度 
                "S": date.getMilliseconds() //毫秒 
            };
            if (/(y+)/.test(format)) {
                format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
            }
            for (var k in o)
            if (new RegExp("(" + k + ")").test(format)) 
                format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            return format;
         }
原文地址:https://www.cnblogs.com/yxkNotes/p/12874705.html