js 日期函数

来源:互联网 发布:爱情主演网络歌手dj 编辑:程序博客网 时间:2024/06/05 02:05

//+---------------------------------------------------  
 //| 得到 YYYY-MM-DD HH:MM:SS  格式的日期  
 //+---------------------------------------------------
function getDateTimeStr(d){
    var date ;
    if(d)
        date = new Date(d);
    else
        date = new Date();

    var month = date.getMonth() + 1;
    var month = ((month > 9)?month:'0' + month);
    var day = ((date.getDate() > 9)?date.getDate():'0' + date.getDate());
    var hours = ((date.getHours() > 9)?date.getHours():'0' + date.getHours());
    var minutes = ((date.getMinutes() > 9)?date.getMinutes():'0' + date.getMinutes());
    var seconds = ((date.getSeconds() > 9)?date.getSeconds():'0' + date.getSeconds());
    var datetime = date.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;

    return datetime;
};

 //+---------------------------------------------------  
 //| 日期计算  
 //+---------------------------------------------------  
 Date.prototype.dateAdd = function(strInterval, Number) {   
     var dtTmp = this;  
     switch (strInterval) {   
         case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
         case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
         case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
         case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
         case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
         case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
         case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
         case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
     }  
 }

 //+---------------------------------------------------  
 //| 日期时间检查  
 //| 格式为:YYYY-MM-DD HH:MM:SS  
 //+---------------------------------------------------  
 function checkDateTime(str){   
     var reg = /^(/d{4})-(/d{2})-(/d{2}) (/d{2}):(/d{2}):(/d{2})$/;   
     var r = str.match(reg);   
     if(r==null)return false;
     r[2]=r[2]-1;   
     var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);   
     if(d.getFullYear()!=r[1])return false;   
     if(d.getMonth()!=r[2])return false;   
     if(d.getDate()!=r[3])return false;   
     if(d.getHours()!=r[4])return false;   
     if(d.getMinutes()!=r[5])return false;   
     if(d.getSeconds()!=r[6])return false;   
     return true;   
 }   


 //+---------------------------------------------------  
//| 字符串转成日期类型   
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
//+---------------------------------------------------  
function dateString2Date(dateStr){
    var converted = Date.parse(DateStr);  
    var myDate = new Date(converted);  
    if (isNaN(myDate)){   
     //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
     var arys= DateStr.split('-');  
     myDate = new Date(arys[0],--arys[1],arys[2]);  
    }  
    return myDate;  
}


//+---------------------------------------------------  
//| 字符串转成日期类型   
//| 字符串格式:YYYY-MM-DD HH:MM:SS
//+---------------------------------------------------  
function dateTimeStr2Date(dateTimeStr){
     var reg = /^(/d{4})-(/d{2})-(/d{2}) (/d{2}):(/d{2}):(/d{2})$/;  
     var r = dateTimeStr.match(reg);  
    
     // 判断是否是参数格式是否正确
     if(!checkDateTime(dateTimeStr)){
         return null;
     }
     
     return new Date(r[1], r[2] - 1, r[3], r[4], r[5], r[6]);
}

//+---------------------------------------------------  
//| 得到两个日期的时间差,单位是毫秒   
//| 字符串格式:YYYY-MM-DD HH:MM:SS
//+---------------------------------------------------  
function getDateTimeDiff(dateTimeStr1, dateTimeStr2){
    var d1 = dateTimeStr2Date(dateTimeStr1);
    var d2 = dateTimeStr2Date(dateTimeStr2);
    return d1 - d2;
}

 
原创粉丝点击