function DateUtil(){}   
/*
 * 功能:时间前后
  *示例:DateUtil.DateAdd("d",1,today);  
 *返回:
 */
DateUtil.DateAdd=function(strInterval,   NumDay,   dtDate)   {   
	  var   dtTmp   =   new   Date(dtDate);   
	  if   (isNaN(dtTmp))   dtTmp   =   new   Date();   
	  switch   (strInterval)   {   
	  case   "s":return   new   Date(Date.parse(dtTmp)   +   (1000   *   NumDay));   
	  case   "n":return   new   Date(Date.parse(dtTmp)   +   (60000   *   NumDay));   
	  case   "h":return   new   Date(Date.parse(dtTmp)   +   (3600000   *   NumDay));   
	  case   "d":return   new   Date(Date.parse(dtTmp)   +   (86400000   *   NumDay));   
	  case   "w":return   new   Date(Date.parse(dtTmp)   +   ((86400000   *   7)   *   NumDay));   
	  case   "m":return   new   Date(dtTmp.getFullYear(),   (dtTmp.getMonth())   +   NumDay,   dtTmp.getDate(),   dtTmp.getHours(),   dtTmp.getMinutes(),   dtTmp.getSeconds());   
	  case   "y":return   new   Date((dtTmp.getFullYear()   +   NumDay),   dtTmp.getMonth(),   dtTmp.getDate(),   dtTmp.getHours(),   dtTmp.getMinutes(),   dtTmp.getSeconds());   
	  }   
	  }   
//+--------------------------------------------------- 
//| 求两个时间的天数差 日期格式为 YYYY-MM-dd   
//+--------------------------------------------------- 
DateUtil.daysBetween=function (DateOne,DateTwo) 
{   
  var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-')); 
  var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); 
  var OneYear = DateOne.substring(0,DateOne.indexOf ('-')); 
  var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-')); 
  var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); 
  var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));    
  var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
 return Math.abs(cha); 
} 
//+--------------------------------------------------- 
//| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串 
//+------------------- -------------------------------- 
DateUtil.datediff=function  (strInterval, dtStart) {   

var dtEnd = new Date(); 
if (typeof dtStart == 'string' )//如果是字符串转换为日期型 
 {   
      dtStart = StringToDate(dtStart); 
 } 
  switch (strInterval) {   
     case 's' :return parseInt((dtEnd - dtStart) / 1000); 
     case 'n' :return parseInt((dtEnd - dtStart) / 60000); 
     case 'h' :return parseInt((dtEnd - dtStart) / 3600000); 
     case 'd' :return parseInt((dtEnd - dtStart) / 86400000); 
     case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
     case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
     case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
     case 'd-h' :return parseFloat((dtEnd - dtStart) / 86400000).toFixed(2);
  } 
} 
  //+--------------------------------------------------- 
//| 比较日期差 dtStart dtEnd 格式为日期型或者 有效日期格式字符串 
//+------------------- -------------------------------- 
DateUtil.dateStartEnd=function  (strInterval, dtStart,dtEnd) {    
if (typeof dtStart == 'string' )//如果是字符串转换为日期型 
 {   
      dtStart = StringToDate(dtStart); 
 }
 if (typeof dtEnd == 'string' )//如果是字符串转换为日期型 
 {   
      dtEnd = StringToDate(dtEnd); 
 }
  switch (strInterval) {   
     case 's' :return parseInt((dtEnd - dtStart) / 1000); 
     case 'n' :return parseInt((dtEnd - dtStart) / 60000); 
     case 'h' :return parseInt((dtEnd - dtStart) / 3600000); 
     case 'd' :return parseInt((dtEnd - dtStart) / 86400000); 
     case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
     case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
     case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
     case 'd-h' :return parseFloat((dtEnd - dtStart) / 86400000).toFixed(2);
  } 
} 
//+--------------------------------------------------- 
//| 字符串转成日期类型   
//| 格式 YYYY-MM-dd-HH-mm-ss
//+--------------------------------------------------- 
function StringToDate(DateStr) 
{   
 var converted = Date.parse(DateStr); 
 var myDate = new Date(converted); 
 if (isNaN(myDate)) 
 {   
      var arys= DateStr.split('-'); 
      myDate = new Date(arys[0],arys[1],arys[2],arys[3],arys[4],arys[5]); 
  }
 return myDate; 
  }
/**  
*功能:格式化时间  
*示例:DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ");  
*返回:2006/11/09  
*/  
DateUtil.Format=function(fmtCode,date){   
     var result,d,arr_d;   
       
     var patrn_now_1=/^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;   
     var patrn_now_11=/^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;   
       
     var patrn_now_2=/^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;   
     var patrn_now_22=/^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;   
       
     var patrn_now_3=/^y{4}年M{2}月d{2}日\sh{2}时m{2}分s{2}秒$/;   
     var patrn_now_33=/^y{4}年M{1,2}月d{1,2}日\sh{1,2}时m{1,2}分s{1,2}秒$/;   
       
     var patrn_date_1=/^y{4}-M{2}-d{2}$/;   
     var patrn_date_11=/^y{4}-M{1,2}-d{1,2}$/;   
       
     var patrn_date_2=/^y{4}\/M{2}\/d{2}$/;   
     var patrn_date_22=/^y{4}\/M{1,2}\/d{1,2}$/;   
       
     var patrn_date_3=/^y{4}年M{2}月d{2}日$/;   
     var patrn_date_33=/^y{4}年M{1,2}月d{1,2}日$/;   
       
     var patrn_time_1=/^h{2}:m{2}:s{2}$/;   
     var patrn_time_11=/^h{1,2}:m{1,2}:s{1,2}$/;   
     var patrn_time_2=/^h{2}时m{2}分s{2}秒$/;   
     var patrn_time_22=/^h{1,2}时m{1,2}分s{1,2}秒$/;   
       
     if(!fmtCode){fmtCode="yyyy/MM/dd hh:mm:ss";}   
     if(date){   
         d=new Date(date);   
         if(isNaN(d)){   
             msgBox("时间参数非法\n正确的时间示例:\nThu Nov 9 20:30:37 UTC+0800 2006\n或\n2006/        10/17");   
             return;}   
     }else{   
         d=new Date();   
     }   
  
     if(patrn_now_1.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_now_11.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_now_2.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_now_22.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_now_3.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
     }   
     else if(patrn_now_33.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
     }   
       
     else if(patrn_date_1.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;   
     }   
     else if(patrn_date_11.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;   
     }   
     else if(patrn_date_2.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;   
     }   
     else if(patrn_date_22.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;   
     }   
     else if(patrn_date_3.test(fmtCode))   
     {   
         arr_d=splitDate(d,true);   
         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";   
     }   
     else if(patrn_date_33.test(fmtCode))   
     {   
         arr_d=splitDate(d);   
         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";   
     }   
     else if(patrn_time_1.test(fmtCode)){   
         arr_d=splitDate(d,true);   
         result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_time_11.test(fmtCode)){   
         arr_d=splitDate(d);   
         result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
     }   
     else if(patrn_time_2.test(fmtCode)){   
         arr_d=splitDate(d,true);   
         result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
     }   
     else if(patrn_time_22.test(fmtCode)){   
         arr_d=splitDate(d);   
         result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
     }   
     else{   
         msgBox("没有匹配的时间格式!");   
         return;   
     }   
       
    return result;   
};   
function splitDate(d,isZero){   
     var yyyy,MM,dd,hh,mm,ss;   
     if(isZero){   
          yyyy=d.getYear();   
          MM=(d.getMonth()+1)<10?"0"+(d.getMonth()+1):d.getMonth()+1;   
          dd=d.getDate()<10?"0"+d.getDate():d.getDate();   
          hh=d.getHours()<10?"0"+d.getHours():d.getHours();   
          mm=d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes();   
          ss=d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds();   
     }else{   
          yyyy=d.getYear();   
          MM=d.getMonth()+1;   
          dd=d.getDate();   
          hh=d.getHours();   
          mm=d.getMinutes();   
          ss=d.getSeconds();     
     }   
     return {"yyyy":yyyy,"MM":MM,"dd":dd,"hh":hh,"mm":mm,"ss":ss};     
}   
function msgBox(msg){   
     window.alert(msg);   
}  
