javascript日期比较

时间:2012-09-06 17:41:59

标签: javascript date comparison

我正在使用javascript Date并且我开始变得疯狂:)

我想要两个比较两个日期的年,月,日。日期是(从firebug stacktrace中检索):

[Date {Thu Feb 11 2010 12:00:00 GMT+0000 (GMT Standard Time)}]

[Date {Sun Jul 11 2010 00:00:00 GMT+0100 (GMT Daylight Time)}]

在这一点上,我正在尝试比较这两个日期:

if (datepickerBegin == null || datepickerBegin.length == 0 || datepickerBegin != date) {
    //Do stuff
}

这段代码显然不起作用,这是比较这两个String的简单方法吗?

我正在尝试将此var转换为Date并将其连接到另一个var getMonth()+getYear()+getDay() ...但是 我相信有一种最简单的方法。

顺便说一下,为什么以下行给出NaN

new Date(datepickerBegin).getMonth()

但以下行有效吗?

new Date(Date.parse(datepickerBegin.toString())).getMonth()

3 个答案:

答案 0 :(得分:2)

使用Date.parse(...);解析日期后,您可以使用Date构造函数来创建日期类型。此过程的一个示例已被抽象为以下函数:

function parseDateAsDatePart(dateString) {
    var parsedDate = new Date(Date.parse(dateString));
    return new Date(parsedDate.getYear(), parsedDate.getMonth(), parsedDate.getDate());
}

将两个字符串更改为Date对象后,您可以如上所示对它们进行比较。

注意:如上面提到的Linus,Date.parse(...)返回一个整数,而不是日期对象,因此需要将其包装在Date构造函数中。

答案 1 :(得分:1)

尝试使用.getTime()方法将日期转换为时间。如果日期相同,则它们将具有从getTime返回的相同值。这假设您只使用日期的字符串值(即“9/6/12”)。如果您的日期将有与之关联的时间戳,那么您需要使用setHours()函数将所有时间参考设置为0(d.setHours(0,0,0,0);)。

链接:

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTime

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setHours

示例:

if(datePickerBegin.getTime() === datePickerEnd.getTime())
{
  //...do something.
}

注意:如果你最终走了.getMonth()路线,那么请注意该函数会将月份作为零数字返回,因此将1添加到它返回的内容。

答案 2 :(得分:0)

您可以尝试使用getMonth,GetDays,...

http://www.comptechdoc.org/independent/web/cgi/javamanual/javadate.html