在Javascript中比较不同格式的日期

时间:2013-04-28 19:50:29

标签: javascript

我正在尝试比较Javascript中有2种不同格式的2个日期。

我的数据库中的日期为2013-04-21(date1),数组中的日期在我的Chrome调试器中以以下格式打印出来:Sun Apr 21 2013 15:37:05 GMT-0400 (Eastern Daylight Time)(date2)

我只想比较日期部分而忽略时间:date1 == date2是真的。

我如何格式化日期以便我可以比较它们?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

y = date2.getFullYear();
m = date2.getMonth()+1;
m = (m<10)? ('0'+m) : m;
d = date2.getDate();
d2 = y+'-'+m+'-'+d;

if (date1 == d2) {
  // do something
}

答案 1 :(得分:0)

date1.toISOString().split("T")[0] == date2.toISOString().split("T")[0]

答案 2 :(得分:0)

我们必须更深入一点:我们必须区分字符串存储日期和Date对象,它可以存储日期并使用日期进行计算。

根据你的描述,我猜date1实际上是一个字符串“2013-04-21”,而date2已经是一个Date对象。

您可以将date1转换为日期对象:

date1AsObject = new Date("2013-04-21");

然后你可以计算它们之间的差异:

diff = date2 - date1AsObject

结果将以毫秒为单位。

或者您可以将date2转换为类似的字符串 Crayon Violent建议:

y = date2.getFullYear();
m = date2.getMonth()+1;
d = date2.getDate();
date2AsString = y+'-'+m+'-'+d;

然后你可以比较两个字符串。