Javascript日期比较忽略时间戳值

时间:2012-02-15 20:07:08

标签: javascript html

比较忽略时间戳的两个日期的最简单方法是什么。我有两个日期firstDate来自数据库(转换为javascript日期)和secondDate来自日期选择器输入字段。
 基本上是为了 我的算法这两个日期是相同的,因为它没有考虑时间戳,但代码不会认为它相等,因为firstDate中有01:00:00
如何完全丢弃时间戳进行比较?

firstDate:

  

1992年2月24日星期二01:00:00 GMT-0500(中部夏令时)

secondDate:

  

1992年3月24日星期二00:00:00 GMT-0500(中部夏令时)

代码:

   if(firstDate < secondDate) {

        alert("This alert shouldn't pop out as dates are equal");
    }

3 个答案:

答案 0 :(得分:5)

您可以使用toDateString来消除时间,并将其重新分配给firstDate和secondDate变量。可能有更好的方法,但这是我想到的。

firstDate = new Date(firstDate.toDateString());
secondDate = new Date(secondDate.toDateString());
if(firstDate < secondDate){
    alert("This alert shouldn't pop out as dates are equal");
}

此外,您需要确保比较日期的值,而不是在比较它们是否相同时检查它们是否是同一个对象。就像这样。

firstDate.valueOf() == secondDate.valueOf()

您还可以查看我的JSFiddle example

答案 1 :(得分:3)

使用带有所有零参数的Date.setHours(hrs, mins, secs, ms)函数将两个日期中的时间设置为午夜(如果您需要带有时间的日期用于其他目的,请复制一份)。

答案 2 :(得分:0)

Derek的回答是正确的。不创建新日期实例的替代方法是创建RFC3339日期字符串。

var firstDateStr = firstDate.toISOString().slice(0, 10);
var secondDateStr = secondDate.toISOString().slice(0, 10);

return (firstDateStr < secondDateStr);
相关问题