js 验证日期和时间是否有效

(function($){
    $.extend({
        IsDate : function(dateString,shortTime){
            if(!dateString){
                return false;
            }
            var testDate = new Date(dateString).valueOf();
            if(!testDate){
                return false;
            }
            if(testDate < 31507201000){
                return false;
            }
            if(shortTime){
                if(dateString.toString().indexOf(" ") ==-1){
                    return false;
                }
            }
            if(dateString.toString().indexOf("/")!=-1){
                dateString = dateString.replace(/[/]/g, '-');
            }
            var newDate = dateString.split(" ")[0].split("-");
            if(dateString.toString().indexOf(" ")!=-1){
                newDate = dateString.split(" ")[0].split("-");
            }else{
                newDate = dateString.toString().split("-");
            }
            var year = parseInt(newDate[0]);
            var month = parseInt(newDate[1]);
            var date = parseInt(newDate[2]);
            if(year < date){
                year = parseInt(newDate[2]);
                month = parseInt(newDate[0]);
                date = parseInt(newDate[1]);
            }
            var istrue = $.isValDate(year,month,date);
            return istrue;
        },
        isValDate : function(year,month,date){
            var months =[1,3,5,7,8,10,12];
            if(months.indexOf(month)!=-1){
                if(date>31){
                    return false;
                }
            }else{
                if(date>30){
                    return false;
                }
            }
            if(year%100 ==0 && year%400 ==0){
                if(month == 2 && date>29){
                    return false;
                }else{
                    return true;
                }
            }
            if(year%100 !=0 && year%4 ==0){
                if(month == 2 && date>29){
                    return false;
                }else{
                    return true;
                }
            }
            if(month == 2 && date>28){
                 return false;
            }
            return true;
        }
    });
})(jQuery);


例如

$.IsDate("2012-2-30")  返回 false;

$.IsDate("2012-2-25", true)  返回 false,第二个参数只要是验证日期中是否含有时间;

$.IsDate("2012-2-25 10:20 pm",true) 和$.IsDate("2012-2-25 10:20 pm") 返回的结果是一样的 都是 true;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值