Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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/0/amazon-s3/2.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 比较两个日期,一个是jquery对象,另一个在文本框中_Javascript_Jquery Ui_Date - Fatal编程技术网

Javascript 比较两个日期,一个是jquery对象,另一个在文本框中

Javascript 比较两个日期,一个是jquery对象,另一个在文本框中,javascript,jquery-ui,date,Javascript,Jquery Ui,Date,我试图比较两个日期,一个在写为YYYY-MM-DD的文本框中,另一个是jquery Datepicker实例 我使用自定义包装函数调用该函数 datePicker('#edd', {onSelect: function(str, obj){ check_if_edd_less_OD(str, obj); }}); 下面是比较日期的JS函数 function check_if_edd_less_OD(s, o) { console.clear(); var eddDate =

我试图比较两个日期,一个在写为
YYYY-MM-DD
的文本框中,另一个是jquery Datepicker实例

我使用自定义包装函数调用该函数

datePicker('#edd', {onSelect: function(str, obj){ check_if_edd_less_OD(str, obj); }});
下面是比较日期的JS函数

function check_if_edd_less_OD(s, o) {

    console.clear();

    var eddDate = new Date();
    eddDate.setDate(o.selectedDay);
    eddDate.setMonth(o.selectedMonth);
    eddDate.setYear(o.selectedYear);

    orderDate = $('#orderdate').val().split('-');

    console.log(orderDate);


    var odDate = new Date();
    odDate.setDate(parseInt(orderDate[2], 10));
    odDate.setMonth(parseInt(orderDate[1], 10));
    odDate.setYear(parseInt(orderDate[0], 10));


    console.log(eddDate);
    console.log(odDate);


    if (odDate.getTime() < eddDate.getTime()) {
        console.log('You shall Pass');
    } else {

        console.log('You shall NOT Pass');
    }


}
可以看到
console.log(eddDate)给出了正确的输出,但
console.log(odDate)是2013年4月7日给我的

问题:为什么这是一种行为?

的月份计数是以零为基础的(一月:0,…,四月:3)。不确定
o.selectedMonth
的格式,但解析的YYY-MM-DD日期应更改为

odDate.setMonth(parseInt(orderDate[1], 10)-1);

顺便说一句,在比较两个
Date
对象之前,不需要调用
getTime()
,它们将自动转换为该数字。

jQuery
Date
对象???那是什么?日期选择器实例。我已经解决了文档中的问题,我看不到对.selectedDay或.selectedMonth的引用,如果运行console.log(o.selectedMonth)会发生什么?您不应该只调用
datepicker.getDate()
?我需要将其与文本框中的其他日期进行比较谢谢您的回答,
o.selectedMonth
返回整数。对于
getTime()
我也会检查它。当然这是一个数字。但是它是基于零的(0-11)还是基于一的(1-12)?哦,对不起。。我并没有向你们提到这一点,我已经在对问题的评论中提到了这一点。那么它是0-11零基的
odDate.setMonth(parseInt(orderDate[1], 10)-1);