Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript日期抛出无效的日期_Javascript_Validation_Date_Undefined - Fatal编程技术网

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