js中如果想要比较两个时间的大小。例如我们的时间格式为:2010-10-01 19:08:09
我们可能最初的想法就是直接把两个时间做差,但是直接做差会得到一个NaN的东西,那么什么是NaN呢?
NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。
明白了这层意思之后我们就有思路了,把两个时间转化为毫秒然后比较大小就可以了。我们的js代码如下:
function checkDate(){ var startDate = document.getElementById("begintime").value; var endDate = document.getElementById("endtime").value; if(startDate.length>0&&endDate.length>0){ var startDatestartDateTemp = startDate.split(" "); var endDateendDateTemp = endDate.split(" "); var arrStartDate = startDatestartDateTemp[0].split("-"); var arrEndDate = endDateendDateTemp[0].split("-"); var arrStartTime = startDatestartDateTemp[1].split(":"); var arrEndTime = endDateendDateTemp[1].split(":"); var allStartDate = new Date(arrStartDate[0],arrStartDate[1],arrStartDate[2],arrStartTime[0],arrStartTime[1],arrStartTime[2]); var allEndDate = new Date(arrEndDate[0],arrEndDate[1],arrEndDate[2],arrEndTime[0],arrEndTime[1],arrEndTime[2]); if(allStartDate.getTime()>allEndDate.getTime()){ return false; } } return true; }