js时间格式化工具类

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

想想以前在客户端格式化时间的操作也是蛮多.晚上学习DWR之后时间有余就写了一个时间的格式化工具类,日后有空再扩展这个类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值