日期的统一处理

来源:互联网 发布:三国 知乎 编辑:程序博客网 时间:2024/05/20 05:08

对于项目中需要大量的日期处理的问题,是可以参考借鉴的,里面啰嗦的代码日后再改……

//date-week-time 顺序不能变//日期格式:存在week时,date必须完整。time存在时必须是h(h):m(m)或者h(h):m(m):s(s)两种形式/**四个参数:    d:要转换的日期;    ofd的格式(old format)    seg: d的分割符号    nf: 输出的日期格式(new format)*/var MONTH = new Array('January','February','March','April','May','June','July','August','September','October','November','December'),    MONTHSHORT = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');var WEEK = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'),    WEEKSHORT = new Arraay('Sun','Mon','Tue','Wed','Thu','Fri','Sat');function dateFormatter(d,of,seg,nf){    var year,month,day,week,hour,minute,second;    var ds=[],dDate=[],dTime=[],ofs=[],ofDate=[],ofTime=[];    if(seg!=" "){        ds = d.split(" ");//d分割:2016-02-25 Friday 19:35:60        $.each(ds,function(n,v){            if(v.indexOf(seg)>0){                dDate = v.split(seg);//日期分割            }            if(v.indexof(":")>0){                dTime = v.split(":");//时间分割            }        });        ofs = of.split(" ")//of分割:YYYY-MM-DD WW hh:mm:ss        $.each(ofs,function(n,v){            if(v.indexOf(seg)>0){                ofDate = v.split(seg);//YYYY-MM-DD分割            }            if(v.indexOf(":")>0){                ofTime = v.split(":");//hh:mm:ss分割            }        });        //nf赋值        //W        if(ds.length==3) week = ds[1];        if(ds.length==2&&ds[1].indexOf(":")<0) week = ds[1];        //Y,M,D        for(var i=0;i<dDate.length;i++){            if(ofDate[i].indexOf('Y')>=0) year = dDate[i];            if(ofDate[i].indexOf('M')>=0) month = dDate[i];            if(ofDate[i].indexOf('D')>=0) day = dDate[i];        }        //h,m,s        for(var j=0;j<dTime.lenght;j++){            if(ofTime[j].indexOf('h')>=0) hour = dTime[j];            if(ofTime[j].indexOf('m')>=0) minute = dTime[j];            if(ofTime[j].indexOf('s')>=0) second = dTime[j];        }    }    //2016 02 15 Friday 21:21:21    if(seg==" "){        ds = d.split(" ");        $.each(ds,function(n,v){            if(v.indexOf(":")>=0){                dTime = v.split(":");//分割21:21:21            }        });        ofs = of.split(" ");        $.each(ofs,function(n,v){            if(v.indexOf(":")>0){                ofTime = v.split(":");//分割hh:mm:ss            }        });        //赋值        //Y,M,D,W        for(var i=0;i<ds.length;i++){            if(ofs[i].indexOf('Y')>=0) year = ds[i];            if(ofs[i].indexOf('M')>=0) month = ds[i];            if(ofs[i].indexOf('D')>=0) day = ds[i];            if(ofs[i].indexOf('W')>=0) week = ds[i];        }        //h,m,s        for(var j=0;j<dTime.lenght;j++){            if(ofTime[j].indexOf('h')>=0) hour = dTime[j];            if(ofTime[j].indexOf('m')>=0) minute = dTime[j];            if(ofTime[j].indexOf('s')>=0) second = dTime[j];        }    }    var reg = /(Y{1,4}|M{1,4}|D{1,2}|W{1,2}|h{1,2}|m{1,2}|s{1,2})/g;    return nf.replace(reg,function(part){        switch(part){            case 'YYYY':                return year;            case 'M':                if(!parseInt(month)){//如果传入的是英文如2015-April-30                    var M1;                    $.each(MONTH,function(n,v){                     if(v.indexOf(month)>=0){                         M1 = n+1;                     }                    })                    return M1;                }                return month;            case 'MM':                if(!parseInt(month)){//如果传入的是英文如2015-April-30                    var M2;                    $.each(MONTH,function(n,v){                        if(v.indexOf(month)>=0){                            M2 = n<10 ? '0'+(n+1) :(n+1);                        }                    })                    return M2;                }                return (parseInt(month)<10) ? '0'+parseInt(month) : month;            case 'MMM':                if(!parseInt(month)){//如果传入的是英文如2015-April-30                    var M3;                    $.each(MONTHSHORT,function(n,v){                        if(v.indexOf(v)>=0){                            M3 = v;                        }                    })                    return M3;                }                return MONTHSHORT[parseInt(month)-1];            case 'MMMM':                if(!parseInt(month)){//如果传入的是英文如2015-April-30                    var M4;                    $.each(MONTH,function(n,v){                        if(v.indexOf(month)>=0){                            M4 = v;                        }                    })                    return M4;                }                return MONTH[parseInt(month)-1];            case 'D':                return day;            case 'DD':                return (parseInt(day)<10) ? '0'+parseInt(day) : day;            case 'W':                if(week) return week.substring(0,3)            case 'WW':                $.each(WEEk,function(n,v){                    if(v.indexOf(week)>=0){                        week = v;                    }                })                return week;            case 'h':                return hour;            case 'hh':                return (parseInt(hour)<10) ? '0'+parseInt(hour) : hour;            case 'm':                return minute;            case 'mm':                return (parseInt(minute)<10) ? '0'+parseInt(minute) : minute;            case 's':                return second;            case 'ss':                return (parseInt(second)<10) ? '0'+parseInt(second) : second;        }    });}

0 0