JavaScript日期抛出无效的日期
我试图比较两个日期,从日期到日期,以下是我的方法:JavaScript日期抛出无效的日期,javascript,validation,date,undefined,Javascript,Validation,Date,Undefined,我试图比较两个日期,从日期到日期,以下是我的方法: function isValidDate() { var fromDate =""; var toDate =""; var fromDateTemp = $("#fromRequestDate").val(); //2013-12-05 var toDateTemp = $("#toRequestDate").val(); //2013-12-01 if(fr
function isValidDate() {
var fromDate ="";
var toDate ="";
var fromDateTemp = $("#fromRequestDate").val(); //2013-12-05
var toDateTemp = $("#toRequestDate").val(); //2013-12-01
if(fromDateTemp.length != '0' && toDateTemp.length != '0'){
fromDate = new Date(fromDateTemp);
toDate = new Date(toDateTemp);
}
if (fromDate.length != '0' || toDate.length != '0') {
$("#validationMessage").text("Please Select From Date and To Date");
return false;
} else if (fromDate.getDate() > toDate.getDate()) {
$("#validationMessage").text("From Date is greater than To Date");
return false;
} else {
$("#validationMessage").text("");
return true;
}
}
但在计算长度时,我得到了Ivalid Date和undefined
所以请帮我找到问题所在
谢谢我们通常使用getTime比较两个日期,它返回自1970年以来经过的毫秒数 所以
他应该工作。当然,假设从fromReqDate和toReqDate中获取的值是Date简单检查fromDate instanceOf Date的实例,则应返回true,我认为错误在于检查fromDate.length是否为“0”| toDate.length是否为“0”,而不是使用了iffromDateTemp.length!='0'&&toDateTemp.length!='0'检查代码,如果仍面临问题,请还原
var fromDate ="";
var toDate ="";
var fromDateTemp = '2013-12-05'; //2013-12-05
var toDateTemp = '2013-12-01'; //2013-12-01
if(fromDateTemp.length != '0' && toDateTemp.length != '0'){
fromDate = new Date(fromDateTemp);
toDate = new Date(toDateTemp);
}
if (fromDate.length == '0' || toDate.length == '0') {
alert("Please Select From Date and To Date");
return false;
} else if (fromDate.getDate() > toDate.getDate()) {
alert("From Date is greater than To Date");
return false;
} else {
alert("");
return true;
}
以下是更正的js:
试着用这个
if(isNaN(new Date(fromDateTemp)))
{
alert("Please enter a valid from date");
return;
}
代替这两个代码,只需替换以下代码
var fromDateTemp = new Date(''+$("#fromRequestDate").val()); //2013-12-05
var toDateTemp = new Date(''+$("#toRequestDate").val()); //2013-12-01
fromDateTemp.length!='0'不比较整数和字符串。只需直接与整数0进行比较。如果您不告诉我们使用当前传递的值,我们将无法为您提供帮助。您可以在其中传递任何内容,我们如何猜测可能是什么类型的值导致了问题?@meagar请查看我用问题编辑的示例值,如果$fromRequestDate.val没有值会发生什么情况???谢谢,它满足了我的要求+1.谢谢你节省了我的时间
if(isNaN(new Date(fromDateTemp)))
{
alert("Please enter a valid from date");
return;
}
var fromDateTemp = $("#fromRequestDate").val(); //2013-12-05
var toDateTemp = $("#toRequestDate").val(); //2013-12-01
var fromDateTemp = new Date(''+$("#fromRequestDate").val()); //2013-12-05
var toDateTemp = new Date(''+$("#toRequestDate").val()); //2013-12-01