0

私はjavascript Dateを使用していますが、夢中になり始めています:)

2 つの日付の年、月、日のみを比較する 2 つが必要です。日付は次のとおりです (firebug スタックトレースから取得):

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

この時点で、次のように 2 つの日付を比較しようとしています。

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

このコードは明らかに機能しません。これら 2 つの文字列を比較する簡単な方法はどれですか?

この変数を日付に変換し、別の変数に連結しようとしてい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 オブジェクトに変更すると、上記のように比較できます。

注:上で述べたように、LinusDate.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 に答える