确定Javascript中的日期相等性
我需要找出用户选择的两个日期在Javascript中是否相同。日期以字符串(“xx/xx/xxxx”)的形式传递给此函数。这就是我需要的所有粒度 这是我的密码:确定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
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