0

我正在使用javascript Date,我开始发疯了:)

我想要两个只比较两个日期的年、月、日。日期是(从萤火虫堆栈跟踪中检索):

[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
}

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

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

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

new Date(datepickerBegin).getMonth()

但以下行有效吗?

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

3 回答 3

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构造函数中。

于 2012-09-06T17:57:17.640 回答
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。

于 2012-09-06T18:00:08.423 回答
0

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

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

于 2012-09-06T18:02:15.647 回答