繁体   English   中英

为什么jQuery UI的datepicker中的这两个日期在jQuery中没有正确比较?

[英]Why don't these two dates from jQuery UI's datepicker compare correctly in jQuery?

我一直在尝试使用jQuery UI的datepicker和timepicker add-on(我刚刚发现并且非常满意的附加组件)来比较日期和时间。

所以,这就是我所拥有的:

首先, $("#dateOfAb").val()$("#dateOfAb2").val()的预期值都使用datetimepicker,格式如下:

时间:

$(“#dateOfAb,#dateOfAb2”)。datetimepicker({timeFormat:“hh:mm tt”,stepMinute:15});

AND,虽然没有明确设置(它似乎是所述插件的默认日期格式):

dateFormat:“mm / dd / yy”

(示例输出:08/16/2013 12:00 am)

所以,我需要比较这些日期,虽然我已经成功地比较了过去的日期,但我在比较相等日期的时间(这是最终目标)时遇到了麻烦,但是现在阻碍我的是我无法获取这两个parseDate值(在完整日期/时间的子字符串上),以显示它们在日期相同时相等。

好的,最后一段可能有点令人困惑,所以这里是代码:

$("#dateOfAb2").change(function () {
    console.log("FIRST SET: " + $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb").val().substring(0, 9)))
    console.log("FIRST SET: " + $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb2").val().substring(0, 9)))

    if ($.datepicker.parseDate("mm/dd/yy", $("#dateOfAb").val().substring(0, 9)) == $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb2").val().substring(0, 9))) {
        alert("The dates are tied.");
        console.log("SECOND SET: " + $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb").val().substring(0, 9)))
        console.log("SECOND SET: " + $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb2").val().substring(0, 9)))
    }
});

问题是,即使我知道值完全相同(使用console.log() [下面的图片]证明),它们似乎没有像我在if分支中所期望的那样进行比较。

运行后控制台的图像:

在此输入图像描述

您可以看到我只是将值的日期部分包含在内并且值相同,但我不确定我做错了什么以及为什么console.log()命令的“SECOND SET:”赢了执行。

解析例程返回Date对象,因此您的比较是在两个单独的对象实例之间进行的。 他们永远不会彼此==

尝试:

if ($.datepicker.parseDate("mm/dd/yy", $("#dateOfAb").val().substring(0, 9)).getTime() == $.datepicker.parseDate("mm/dd/yy", $("#dateOfAb2").val().substring(0, 9)).getTime()) {

通过比较调用.getTime()的结果,您将比较两个数字的相等性,这将做你想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM