欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JQuery检验日期格式,日期时间格式化代码封装

程序员文章站 2022-07-15 07:51:28
...

JQuery检验日期格式,日期时间格式化代码封装

检验日期格式是否为YYYY-MM-DD
入参类型:日期字符串
返回值:boolean,日期格式正确为true

function isSimpleDate(date) 
{
	date = $.trim(date);
	var reg = /^(\d{4})-(\d{2})-(\d{2})$/;
	reg.exec(date);
	if (!reg.test(date)) 
	{
		return false;
	}
	var year, month, day;
	year = parseInt(RegExp.$1, 10);//十进制转为数字
	month = parseInt(RegExp.$2, 10);//十进制转为数字
	day = parseInt(RegExp.$3, 10);//十进制转为数字
	//不在此范围的 日期格式,则判定不正常
	if (! ((1 <= month) && (12 >= month) && (31 >= day) && (1 <= day))) 
	{
		return false;
	}
	//2月,4月,月都为偶数,有31天则不正常
	if ((month <= 7) && ((month % 2) == 0) && (day >= 31)) 
	{
		return false;
	}
	//10月与12月都为偶数,11月有31天则不正常
	if ((month >= 8) && ((month % 2) == 1) && (day >= 31)) 
	{
		return false;
	}
	//校验2月份天数是否正确
	if (month == 2) 
	{
		if (((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) && (day > 29)) 
		{
			return false;
		} 
		else if(day > 28)
		{
			return false;
		}
	}
	return true;
}

检验日期格式是否为YYYY-MM-DD HH:mm:ss
入参类型:日期字符串
返回值:boolean,日期格式正确为true

function isDateHours(date) 
{
    date = $.trim(date);
    var reg = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
    reg.exec(date);
    if (!reg.test(date)) 
    {
    	return false;
    }
    var year, month, day, hours, minute, second;
    year = parseInt(RegExp.$1, 10);//十进制转为数字
    month = parseInt(RegExp.$2, 10);//十进制转为数字
    day = parseInt(RegExp.$3, 10);//十进制转为数字
    hours = parseInt(RegExp.$4, 10);//十进制转为数字
    minute = parseInt(RegExp.$5, 10);//十进制转为数字
    second = parseInt(RegExp.$6, 10);//十进制转为数字
    //不在此范围的 日期格式,则判定不正常
    if (! ((1 <= month) && (12 >= month) && (31 >= day) && (1 <= day))) 
    {
    	return false;
    }
    //2月,4月,月都为偶数,有31天则不正常
    if ((month <= 7) && ((month % 2) == 0) && (day >= 31)) 
    {
    	return false;
    }
    //10月与12月都为偶数,11月有31天则不正常
    if ((month >= 8) && ((month % 2) == 1) && (day >= 31)) 
    {
    	return false;
    }
    //校验2月份天数是否正确
	if (month == 2) 
	{
		if (((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) && (day > 29))
		{
			return false;
		} 
		else if(day > 28)
		{
			return false;
		}
	}
    //校验时间基数是否大于60
    if(hours>60||minute>60||second>60)
    {
    	return false;
    }
    return true;
}

格式化日期格式

方式一、

使用jQuery继承,封装代码,引用js文件后,直接调用
入参类型:无参数,直接调用,例如:new Date().Format("yyyy-MM-dd HH:mm:ss");
返回值:字符串

jQuery.extend
({
	formatDate :function formatDate(){
    	// 对Date的扩展,将 Date 转化为指定格式的String  
    	// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,   
    	// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   
    	Date.prototype.Format = function (fmt) { //author: meizz   
    	    var o = {  
    	        "M+": this.getMonth() + 1, //月份   
    	        "d+": this.getDate(), //日   
    	        "H+": this.getHours(), //小时   
    	        "m+": this.getMinutes(), //分   
    	        "s+": this.getSeconds(), //秒   
    	        "q+": Math.floor((this.getMonth() + 3) / 3), //季度   
    	        "S": this.getMilliseconds() //毫秒   
    	    };  
    	    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
    	    for (var k in o)  
    	    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  
    	    return fmt;  
    	}; 
    }
});

方式二、

封装代码,直接调用
入参类型:new Date()
返回值:字符串

function formatTime(date)
{
	var datetime = date.getFullYear()+"-";
	var month = (date.getMonth()+1)+"";
	if(month.length==1)
	{
 		month="0"+month;
 	}
 	var day = date.getDate()+"";
 	if(day.length==1)
 	{
 		day="0"+day;
 	}
 	var hours = date.getHours()+"";
 	if(hours.length==1)
 	{
 		hours="0"+hours;
 	}
 	var minute = date.getMinutes()+"";
 	if(minute.length==1)
 	{
 		minute="0"+minute;
 	}
 	var seconds = date.getSeconds()+"";
 	if(seconds.length==1)
 	{
 		seconds="0"+seconds;
 	}
 	datetime = datetime +month+"-"+day+" "+hours+":"+minute+":"+seconds;
 	return datetime ;
}

方式三、

封装代码,直接调用
入参类型:new Date()
返回值:字符串

function formatTime(datetime)
{
 	datetime=new Date(datetime); 
 	var year = datetime.getFullYear();
 	var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
 	var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
	var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
 	var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
	var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
 	return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}