zoukankan      html  css  js  c++  java
  • 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;
             }
  • 相关阅读:
    INF文件的语法解说转
    VC的拨号上网程序
    sql修复
    flash media server 2 下载 + 无限制序列号
    [原] ASPNET2.0中如何历遍GRIDVIEW
    [net2.0] ASPNET内置安全认证架构 的灵异问题~~~~
    SnagIt的Visual Studio Team System插件
    [翻译]使用HtmlAgilityPack更好的HTML分析和验证
    哪些自动化测试工具支持AJAX
    VSTT Rosario CTP
  • 原文地址:https://www.cnblogs.com/yxkNotes/p/12874705.html
Copyright © 2011-2022 走看看