javascript日期操作—整理(二)

javascript日期工具类

/** 

 * 判断是不是一个正确的时间 yyyy-MM-dd 
 * @param {String} str 
 * @return {Date} 
 */  
Date.isSimpleDate = function(str){  
    var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;  
    var r = str.match(reg);  
    if(r==null)return   null;  
    var   d=   new   Date(r[1], r[3]-1,r[4]);  
    var   newStr=d.getFullYear() + "-";  
    newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;  
    newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate());  
    if(newStr==str){  
        return d;  
    }else{  
        return null;  
    }  
}  
/** 
 * 判断是不是一个正确的时间类型 yyyy-MM-dd hh 
 * @param {Object} str 
 */  
Date.isDateHH = function(str){  
    var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})$/;  
    var r = str.match(reg);  
    if(r==null)return   null;  
    var   d=   new   Date(r[1], r[3]-1,r[4],r[5]);  
    var   newStr=d.getFullYear() + "-";  
    newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;  
    newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";  
    newStr+=((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours());  
    if(newStr==str){  
        return d;  
    }else{  
        return null;  
    }  
}  
/** 
 * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm 
 * @param {String} str 
 */  
Date.isDateHHMM = function(str){  
    var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;  
    var   r   =   str.match(reg);  
    if(r==null)return   null;  
    var   d=   new   Date(r[1], r[3]-1,r[4],r[5],r[6]);  
    var   newStr=d.getFullYear() + "-";  
    newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;  
    newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";  
    newStr += ((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours())+":";  
    newStr += ((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes());  
    if(newStr==str){  
        return d;  
    }else{  
        return null;  
    }  
}  
/** 
 * 判断是不是一个正确的时间类型 yyyy-MM-dd hh:mm:ss 
 * @param {String} str 
 */  
Date.isDateHHMMSS = function(str){  
    var   reg   =   /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;  
    var   r   =   str.match(reg);  
    if(r==null)return   null;  
    var   d=   new   Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);  
    var   newStr=d.getFullYear() + "-";  
    newStr+=(((d.getMonth()+1)<10&&r[3].length>1)?('0'+(d.getMonth()+1)):(d.getMonth()+1)) + "-" ;  
    newStr+=(((d.getDate())<10 && r[4].length>1)?('0'+d.getDate()):d.getDate()) + " ";  
    newStr += (((d.getHours()<10&&r[5].length>1)?('0'+d.getHours()):d.getHours()))+":";  
    newStr += (((d.getMinutes()<10&&r[6].length>1)?('0'+d.getMinutes()):d.getMinutes())) + ":";  
    newStr += ((d.getSeconds()<10&&r[7].length>1)?('0'+d.getSeconds()):d.getSeconds());  
    if(newStr==str){  
        return d;  
    }else{  
        return null;  
    }  
}  
/*** 
 * 判断是日期1是不是在日期2后面 
 * @param {Date/String} d1 
 * @param {Date/String} d2 
 * @return {Boolean} true 小于日期2 
 */  
Date.before = function(d1,d2){  
    if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'object' && d2.constructor == Date)){  
        if(d1<=d2){  
            return true;  
        }else{  
            return false;  
        }  
    }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'string' && d2.constructor == String)){  
  
        var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);  
        date1 = date1!=null?date1:Date.isDateHHMM(d1);  
        date1 = date1!=null?date1:Date.isDateHHMMSS(d1);  
        var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);  
        date2 = date2!=null?date2:Date.isDateHHMM(d2)  
        date2 = date2!=null?date2:Date.isDateHHMMSS(d2);  
        if(date1==null||date2==null){  
            alert("日期格式不正确!");  
            return false;  
        }  
        if(date1<=date2){  
            return true;  
        }else{  
            return false;  
        }  
    }else if((typeof d1 == 'string' && d1.constructor == String) && (typeof d2 == 'object' && d2.constructor == Date)){  
  
        var date1 = Date.isSimpleDate(d1)!=null?Date.isSimpleDate(d1):Date.isDateHH(d1);  
        date1 = date1!=null?date1:Date.isDateHHMM(d1);  
        date1 = date1!=null?date1:Date.isDateHHMMSS(d1);  
        if(date1==null||d2==null){  
            alert("日期格式不正确!");  
            return false;  
        }  
        if(date1<=d2){  
            return true;  
        }else{  
            return false;  
        }  
    }else if((typeof d1 == 'object' && d1.constructor == Date) && (typeof d2 == 'string' && d2.constructor == String)){  
  
        var date2 = Date.isSimpleDate(d2)!=null?Date.isSimpleDate(d2):Date.isDateHH(d2);  
        date2 = date2!=null?date2:Date.isDateHHMM(d2)  
        date2 = date2!=null?date2:Date.isDateHHMMSS(d2);  
        if(d1==null||date2==null){  
            alert("日期格式不正确!");  
            return false;  
        }  
        if(d1<=date2){  
            return true;  
        }else{  
            return false;  
        }  
    }else{  
        alert("无法判断输入数据类型!");  
        return false;  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值