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;
}