我正在尝试比较Javascript中有2种不同格式的2个日期。
我的数据库中的日期为2013-04-21
(date1),数组中的日期在我的Chrome调试器中以以下格式打印出来:Sun Apr 21 2013 15:37:05 GMT-0400 (Eastern Daylight Time)
(date2)
我只想比较日期部分而忽略时间:date1 == date2
是真的。
我如何格式化日期以便我可以比较它们?
非常感谢任何帮助。
答案 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;
然后你可以比较两个字符串。