我自己比较日期,一般都是进行转换成getTime()来比较,今天看到项目中有直接进行字符串比较
var mDate=$("#deliveryTime").datebox('getValue');
var curr_time = new Date();
var sDate=myformatter(curr_time);//这个方法是把日期转换为了字符串
if(mDate>sDate){ //"2019-09-09" > "2019-10-09" //格式是对的
//...业务逻辑
}
通过比较显然是false,但是js这样直接比较需要符合日期格式,如果是错误的:
比如:"2019-9-09" > "2019-10-9" //这样的格式不合符是无法直接进行比较的!
//时间转换标准格式的字符串
function myformatter(date){
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
}
//把日期以-隔开的字符串转换为日期格式
function strDateForDate(str){
var strDate = str.split(" ");
var strDatepart = strDate[0].split("-");
var dtDate = new Date(strDatepart[0],strDatepart[1]-1,strDatepart[2]);
return dtDate;
}