Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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_Jquery - Fatal编程技术网

Javascript计算给定日期是当前日期还是未来日期?

Javascript计算给定日期是当前日期还是未来日期?,javascript,jquery,Javascript,Jquery,在日期选择器中,我希望限制输入以防止日期出现在过去。我使用了下面的JavaScript,但在某些情况下失败 function isPastDate(value) { var now = new Date; var target = new Date(value); if (target.getFullYear() < now.getFullYear()) { return true; } else

在日期选择器中,我希望限制输入以防止日期出现在过去。我使用了下面的JavaScript,但在某些情况下失败

 function isPastDate(value) {
        var now = new Date;
        var target = new Date(value);

        if (target.getFullYear() < now.getFullYear()) {
            return true;
        } else if (target.getMonth() < now.getMonth()) {
            return true;
        } else if (target.getDate() < now.getDate()) {
            return true;
        }
    return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()
有人能帮我吗?

请看:

var selectedDate=$('#datepicker')。datepicker('getDate');
var now=新日期();
如果(已选择日期<现在){
//所选日期为过去日期
}
请参见:

var selectedDate=$('#datepicker')。datepicker('getDate');
var now=新日期();
如果(已选择日期<现在){
//所选日期为过去日期
}

正如epascarello所说,只需比较两个日期:

function isPastDate(value) {
    return new Date() > new Date(value);
}

之所以会出现这种情况,是因为自1970年1月1日以来,日期是以毫秒为单位测量的(如果我错了,请纠正我),所以真正发生的是两个长数字之间的比较。

正如epascarello所说,只需比较两个日期:

function isPastDate(value) {
    return new Date() > new Date(value);
}

之所以会出现这种情况,是因为自1970年1月1日以来,日期是以毫秒为单位测量的(如果我错了,请纠正我),所以真正发生的是两个长数字之间的比较。

您的函数在逻辑上是错误的,并且在测试月份之前不会检查年份是否确实相同,月份和天数也是一样的。 您可以尝试:

   function isPastDate(value) {
    var now = new Date;
    var target = new Date(value);

    if (target.getFullYear() < now.getFullYear()) {
        return true;
    } else if (target.getFullYear() === now.getFullYear())
        if (target.getMonth() < now.getMonth()) {
            return true;
        } else if (target.getMonth() === now.getMonth()) {
            if (target.getDate() < now.getDate()) {
                return true;
            }
        }
    }

    return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()

希望这能有所帮助

您的函数在逻辑上是错误的,在测试月份之前,不要检查年份是否确实相同,月份和天数也是一样的。 您可以尝试:

   function isPastDate(value) {
    var now = new Date;
    var target = new Date(value);

    if (target.getFullYear() < now.getFullYear()) {
        return true;
    } else if (target.getFullYear() === now.getFullYear())
        if (target.getMonth() < now.getMonth()) {
            return true;
        } else if (target.getMonth() === now.getMonth()) {
            if (target.getDate() < now.getDate()) {
                return true;
            }
        }
    }

    return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()

希望这有帮助

在什么情况下它会失败?你把一件简单的事情复杂化了
console.log(now>target)
有人从这里复制了答案:??@epascarello ya我遵循了那一条并失败了。怎么失败的?解释它是如何失败的…在什么情况下失败?你把一件简单的事情复杂化了
console.log(now>target)
有人从这里复制了答案:??@epascarello ya我跟着那件事失败了。怎么失败的?解释它是如何失败的…如果你想在以后使用它,你可以使用时间戳。如果没有,这个方法就可以了。有关JavaScript时间戳的信息,请参阅。如果您以后想使用它,可以使用时间戳。如果没有,这个方法就可以了。有关JavaScript时间戳,请参见。