从网上找的比较两个日期时间格式字符串的大小的js代码,根据自己项目需要改了下,保存下来,以后方便使用
原文章写的更详细:https://www.jb51.net/article/45560.htm 感谢作者~
使用下面代码前必须确保传入的参数格式为:yyyy-MM-dd HH:mm:ss
下面是判断字符串是否为上述日期格式的正则表达式
var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
var regExp = new RegExp(reg);
if (!regExp.test(logintime)) {
alert("登录时间格式不正确,正确格式为: 2000-01-01 12:00:00 ");
return;
}
//比较日期,时间大小
function compareCalendar(logintime, logouttime) {
if (logintime.indexOf(" ") != -1 && logouttime.indexOf(" ") != -1) {
//包含时间,日期
return compareTime(logintime, logouttime);
}
else {
//不包含时间,只包含日期
return compareDate(logintime, logouttime);
}
}
//比较日期大小
function compareDate(logintime, logouttime) {
var arys1 = new Array();
var arys2 = new Array();
if (logintime != null && logouttime != null) {
arys1 = logintime.split('-');
var logindate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]);
arys2 = logouttime.split('-');
var logoutdate = new Date(arys2[0], parseInt(arys2[1] - 1), arys2[2]);
if (logindate > logoutdate) {
return false;
} else {
return true;
}
}
}
//判断日期,时间大小
function compareTime(logintime, logouttime) {
if (logintime.length > 0 && logouttime.length > 0) {
var logintimeTemp = logintime.split(" ");
var logouttimeTemp = logouttime.split(" ");
var arrloginDate = logintimeTemp[0].split("-");
var arrlogoutDate = logouttimeTemp[0].split("-");
var arrloginTime = logintimeTemp[1].split(":");
var arrlogoutTime = logouttimeTemp[1].split(":");
var allLoginDate = new Date(arrloginDate[0], arrloginDate[1], arrloginDate[2], arrloginTime[0], arrloginTime[1], arrloginTime[2]);
var allLogoutDate = new Date(arrlogoutDate[0], arrlogoutDate[1], arrlogoutDate[2], arrlogoutTime[0], arrlogoutTime[1], arrlogoutTime[2]);
if (allLoginDate.getTime() >= allLogoutDate.getTime()) {
return false;
} else {
return true;
}
} else {
return false;
}
}