0

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

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

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

我将如何格式化日期以便能够比较它们?

任何帮助是极大的赞赏。

4

3 回答 3

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
}
于 2013-04-28T19:53:53.130 回答
0
date1.toISOString().split("T")[0] == date2.toISOString().split("T")[0]
于 2013-04-28T19:54:13.003 回答
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;

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

于 2013-04-28T19:54:22.503 回答