Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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中的日期相等性_Javascript_Date_Equality - Fatal编程技术网

确定Javascript中的日期相等性

确定Javascript中的日期相等性,javascript,date,equality,Javascript,Date,Equality,我需要找出用户选择的两个日期在Javascript中是否相同。日期以字符串(“xx/xx/xxxx”)的形式传递给此函数。这就是我需要的所有粒度 这是我的密码: var valid = true; var d1 = new Date($('#datein').val()); var d2 = new Date($('#dateout').val()); alert(d1+"\n"+d2); if(d1 > d2) { aler

我需要找出用户选择的两个日期在Javascript中是否相同。日期以字符串(“xx/xx/xxxx”)的形式传递给此函数。这就是我需要的所有粒度

这是我的密码:

        var valid = true;
    var d1 = new Date($('#datein').val());
    var d2 = new Date($('#dateout').val());
    alert(d1+"\n"+d2);
    if(d1 > d2) {
        alert("Your check out date must be after your check in date.");
        valid = false;
    } else if(d1 == d2) {
        alert("You cannot check out on the same day you check in.");
        valid = false;
    }
将日期转换为对象后的javascript警报如下所示:

2011年1月25日星期二00:00:00 GMT-0800(太平洋标准时间)

2011年1月25日星期二00:00:00 GMT-0800(太平洋标准时间)

确定日期1是否大于日期2的测试有效。但是使用==或===运算符不会将valid更改为false。

使用
getTime()
方法。它将检查日期的数值,它将用于大于/小于检查以及等于检查

编辑:


如果不想调用
getTime()
,请尝试以下方法:

(a>=b&&a
使用两种简单的方法检查相等性

  • if(d1.toString()==d2.toString())
  • if(+d1===+d2)

  • 你看过这篇文章了吗:。有帮助吗?我想把这篇文章标记为重复的,但我认为这是同一问题的边缘案例,所以我没有。这篇文章不是重复的。文章提到了(和被接受的答案)是关于确定一个日期是在另一个日期之前还是之后,而不是关于平等。我在上面发布的stackoverflow问题显示了一个例子。这些问题是相同的。更简单的方法是:
    如果(+d1==+d2)
    你会惊讶于这些问题如何在多年后继续帮助开发人员:-)WTF?为什么这样做有效,而相等运算符不起作用?这其中的意义何在?相等运算符检查引用相等。这意味着只有当两个变量引用同一个对象时,它才会返回true。如果创建两个日期对象(
    var a=new Date();var b=new Date();
    ),它们将永远不会相等。@devmiles.com除了字符串之外,字符串也会通过值进行比较,
    var a=“str1”;var b=“str”+“1”;a==b//true
    wierd。你可能会认为这实际上是一个将==和===分开的地方。。。哦,等等,是javascript。我们在这里没有意义@Towa,这是因为>=和社区鼓励在代码中添加解释,而不是纯粹基于代码的答案(请参阅)。这是错误的。4月7日与3月7日不同。
    if (d1.getTime() === d2.getTime())
    
    var d1 = new Date($('#datein').val());
    var d2 = new Date($('#dateout').val());
    
    var date = Wed Oct 07 2015 19:48:08 GMT+0200 (Central European Daylight Time);
    
    var dateOne = new Date(date);
    var dateTwo = new Date();
    
    var isEqual = dateOne.getDate() === dateTwo.getDate()
    
    this will give you the dates equality