论坛首页 Web前端技术论坛

格式化时间js通用类,还有一个秘密(overflow:scroll属性)

浏览 4017 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2010-01-26   最后修改:2010-01-26
/** 
*功能:dwr 时间显示挺无奈的,思考一下之后吗,写了格式化时间 
*示例:DateUtil.Convert("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 "); 
*返回:2010/01/26 QQ:962589149 
*/ 
//定义一个类
function DateUtil(){};//空的构造函数
DateUtil.prototype.Convert=function(fmt,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(!fmt){fmt="yyyy/MM/dd hh:mm:ss";}  
    if(date){  
        d=new Date(date);  
        if(isNaN(d)){  
            alert("参数非法!");
            return;}  
    }else{  
        d=new Date();  
    }
    if(patrn_now_1.test(fmt))  
    {  
        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(fmt))  
    {  
        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(fmt))  
    {  
        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(fmt))  
    {  
        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(fmt))  
    {  
        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(fmt))  
    {  
        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(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;  
    }  
    else if(patrn_date_11.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;  
    }  
    else if(patrn_date_2.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;  
    }  
    else if(patrn_date_22.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;  
    }  
    else if(patrn_date_3.test(fmt))  
    {  
        arr_d=splitDate(d,true);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";  
    }  
    else if(patrn_date_33.test(fmt))  
    {  
        arr_d=splitDate(d);  
        result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";  
    }  
    else if(patrn_time_1.test(fmt)){  
        arr_d=splitDate(d,true);  
        result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_time_11.test(fmt)){  
        arr_d=splitDate(d);  
        result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;  
    }  
    else if(patrn_time_2.test(fmt)){  
        arr_d=splitDate(d,true);  
        result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
    else if(patrn_time_22.test(fmt)){   d
        arr_d=splitDate(d);  
        result=arr_d.hh+"时"+arr_d.mm+"分"+arr_d.ss+"秒";  
    }  
    else{  
        alert("没有匹配的时间格式!");  
        return;  
    }
alert(result);
   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};    
}  

直接导入js就行,然后再html 调用了
function convertDate()
{
var dataformat=new DateUtil();
dataformat.Convert("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006"); 
}
呵呵,简单不,假如有什么不懂的,互相学习与请教!QQ:962589149
   发表时间:2010-01-27  
有点复杂,这是网上找的代码,用着挺好,参考下。
/*
* 时间对象的格式化;
eg: alert((new Date()).format("yyyy年MM月dd日hh小时mm分ss秒"));
*/
Date.prototype.format = function(format)
{
    var o = {
        "M+" :  this.getMonth()+1,  //month
        "d+" :  this.getDate(),     //day
        "h+" :  this.getHours(),    //hour
        "m+" :  this.getMinutes(),  //minute
        "s+" :  this.getSeconds(), //second
        "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
        "S"  :  this.getMilliseconds() //millisecond
    };
    if(/(y+)/.test(format)) 
    {
        format = format.replace(RegExp.$1, (this.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;
}
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics