js中进行时间的比较,首先进行时间的格式化,将string格式的字符串转化成Date格式的时间,再进行比较。如果比较的两边时间格式都是yyyy-MM-dd,
可以直接比较,因为js会按照顺序比较每个字符的ASICC码大小,比较出来结果返回大小
2018-07-06 < 2018-07-07的比较,前面字符的ASICC码相同,6的ASICC码比7的ASICC码小,所以结果是true
/**
* 判断字符是否为空的方法
*/
function isEmpty(obj){
if(typeof obj == "undefined" || obj == null || obj == ""){
return true;
}else{
return false;
}
}
/**
* 验证startdate enddate 的大小 时间区段的检测
*
*/
function checkDate(startDate,endDate){
if(!isEmpty(startDate)){
if(!isEmpty(endDate)){
var d1 = new Date(startDate.replace(/\-/g, "\/"));
var d2 = new Date(endDate.replace(/\-/g, "\/"));
if(d1 > d2){
alert('#{messages.smp_auth_code_query_date_formt_error}');
return false;
}
}
}
return true;
}
/**
* 时间验证,不能比今天的日期小,yyyy-MM-dd
* date =“20118-07-06"
*/
function checkEndDate(date){
var d1 = new Date(date.replace(/\-/g, "\/"));
var now = new Date();
var date = now.getFullYear() + "-" + ((now.getMonth() + 1) < 10 ? "0" : "") + (now.getMonth() + 1) + "-" + (now.getDate() < 10 ? "0" : "") + now.getDate();
var toDay =new Date(date.replace(/\-/g, "\/"));
if(d1<toDay){
alert("填写的日期不能比今天的日期小!");
return false;
}
return true;
}
//yyyy-MM-dd hh:mm:ss 格式字符串转化为date 当前时间添加、减少一小时
function checkOnlineTime(onlineTimeStr) {
var startTime = new Date();
var endTime = new Date();
startTime.setHours(startTime.getHours()-1);
endTime.setHours(endTime.getHours()+1);
console.log("startTime:"+startTime);
console.log("endTime:"+endTime);
var onlineTimeStr="2018-08-03 15:23:11";
var onlineTime = new Date();
onlineTime.setYear(parseInt(onlineTimeStr.substring(0,4),10));
onlineTime.setMonth(parseInt(onlineTimeStr.substring(5,7)-1,10));
onlineTime.setDate(parseInt(onlineTimeStr.substring(8,10),10));
onlineTime.setHours(parseInt(onlineTimeStr.substring(11,13),10));
console.log("onlineTime:"+onlineTime);
if( startTime <= d <= endTime){
checkFlag = true;
}
}