js时间格式化工具类(转)

Java代码 复制代码
  1. function DateUtil(){}   
  2. /**  
  3. *功能:格式化时间  
  4. *示例:DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ");  
  5. *返回:2006/11/09  
  6. */  
  7. DateUtil.Format=function(fmtCode,date){   
  8.     var result,d,arr_d;   
  9.        
  10.     var patrn_now_1=/^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;   
  11.     var patrn_now_11=/^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;   
  12.        
  13.     var patrn_now_2=/^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;   
  14.     var patrn_now_22=/^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;   
  15.        
  16.     var patrn_now_3=/^y{4}年M{2}月d{2}日\sh{2}时m{2}分s{2}秒$/;   
  17.     var patrn_now_33=/^y{4}年M{1,2}月d{1,2}日\sh{1,2}时m{1,2}分s{1,2}秒$/;   
  18.        
  19.     var patrn_date_1=/^y{4}-M{2}-d{2}$/;   
  20.     var patrn_date_11=/^y{4}-M{1,2}-d{1,2}$/;   
  21.        
  22.     var patrn_date_2=/^y{4}\/M{2}\/d{2}$/;   
  23.     var patrn_date_22=/^y{4}\/M{1,2}\/d{1,2}$/;   
  24.        
  25.     var patrn_date_3=/^y{4}年M{2}月d{2}日$/;   
  26.     var patrn_date_33=/^y{4}年M{1,2}月d{1,2}日$/;   
  27.        
  28.     var patrn_time_1=/^h{2}:m{2}:s{2}$/;   
  29.     var patrn_time_11=/^h{1,2}:m{1,2}:s{1,2}$/;   
  30.     var patrn_time_2=/^h{2}时m{2}分s{2}秒$/;   
  31.     var patrn_time_22=/^h{1,2}时m{1,2}分s{1,2}秒$/;   
  32.        
  33.     if(!fmtCode){fmtCode="yyyy/MM/dd hh:mm:ss";}   
  34.     if(date){   
  35.         d=new Date(date);   
  36.         if(isNaN(d)){   
  37.             msgBox("时间参数非法\n正确的时间示例:\nThu Nov 9 20:30:37 UTC+0800 2006\n或\n2006/       10/17");   
  38.             return;}   
  39.     }else{   
  40.         d=new Date();   
  41.     }   
  42.   
  43.     if(patrn_now_1.test(fmtCode))   
  44.     {   
  45.         arr_d=splitDate(d,true);   
  46.         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  47.     }   
  48.     else if(patrn_now_11.test(fmtCode))   
  49.     {   
  50.         arr_d=splitDate(d);   
  51.         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  52.     }   
  53.     else if(patrn_now_2.test(fmtCode))   
  54.     {   
  55.         arr_d=splitDate(d,true);   
  56.         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  57.     }   
  58.     else if(patrn_now_22.test(fmtCode))   
  59.     {   
  60.         arr_d=splitDate(d);   
  61.         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  62.     }   
  63.     else if(patrn_now_3.test(fmtCode))   
  64.     {   
  65.         arr_d=splitDate(d,true);   
  66.         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
  67.     }   
  68.     else if(patrn_now_33.test(fmtCode))   
  69.     {   
  70.         arr_d=splitDate(d);   
  71.         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
  72.     }   
  73.        
  74.     else if(patrn_date_1.test(fmtCode))   
  75.     {   
  76.         arr_d=splitDate(d,true);   
  77.         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;   
  78.     }   
  79.     else if(patrn_date_11.test(fmtCode))   
  80.     {   
  81.         arr_d=splitDate(d);   
  82.         result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;   
  83.     }   
  84.     else if(patrn_date_2.test(fmtCode))   
  85.     {   
  86.         arr_d=splitDate(d,true);   
  87.         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;   
  88.     }   
  89.     else if(patrn_date_22.test(fmtCode))   
  90.     {   
  91.         arr_d=splitDate(d);   
  92.         result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;   
  93.     }   
  94.     else if(patrn_date_3.test(fmtCode))   
  95.     {   
  96.         arr_d=splitDate(d,true);   
  97.         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";   
  98.     }   
  99.     else if(patrn_date_33.test(fmtCode))   
  100.     {   
  101.         arr_d=splitDate(d);   
  102.         result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";   
  103.     }   
  104.     else if(patrn_time_1.test(fmtCode)){   
  105.         arr_d=splitDate(d,true);   
  106.         result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  107.     }   
  108.     else if(patrn_time_11.test(fmtCode)){   
  109.         arr_d=splitDate(d);   
  110.         result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;   
  111.     }   
  112.     else if(patrn_time_2.test(fmtCode)){   
  113.         arr_d=splitDate(d,true);   
  114.         result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
  115.     }   
  116.     else if(patrn_time_22.test(fmtCode)){   
  117.         arr_d=splitDate(d);   
  118.         result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";   
  119.     }   
  120.     else{   
  121.         msgBox("没有匹配的时间格式!");   
  122.         return;   
  123.     }   
  124.        
  125.    return result;   
  126. };   
  127. function splitDate(d,isZero){   
  128.     var yyyy,MM,dd,hh,mm,ss;   
  129.     if(isZero){   
  130.          yyyy=d.getYear();   
  131.          MM=(d.getMonth()+1)<10?"0"+(d.getMonth()+1):d.getMonth()+1;   
  132.          dd=d.getDate()<10?"0"+d.getDate():d.getDate();   
  133.          hh=d.getHours()<10?"0"+d.getHours():d.getHours();   
  134.          mm=d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes();   
  135.          ss=d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds();   
  136.     }else{   
  137.          yyyy=d.getYear();   
  138.          MM=d.getMonth()+1;   
  139.          dd=d.getDate();   
  140.          hh=d.getHours();   
  141.          mm=d.getMinutes();   
  142.          ss=d.getSeconds();     
  143.     }   
  144.     return {"yyyy":yyyy,"MM":MM,"dd":dd,"hh":hh,"mm":mm,"ss":ss};     
  145. }   
  146. function msgBox(msg){   
  147.     window.alert(msg);   
  148. }  
posted @ 2010-08-20 11:43  gllg  阅读(340)  评论(0编辑  收藏  举报