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

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TorZhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值