0

そのため、先月の最後の数日と翌月の最初の数日とともに、現在の月を反映する Javascript カレンダーに取り組んでいます。一生解けない問題にぶち当たりました。

私は次のものを持っています

var today = new Date();
var lastMonthDays =  new Date(today.getFullYear(), today.getMonth() - 1, 0).getDate();

これはそれぞれ先月の最終日を返す必要がありますが、31 日を表す値 31 が返されますが、4 月には 30 日しかありません。だから私の最善の推測は、それが私に現在の月の日数を与えているということです。これは私に30を与えるべきではありませんか?私はオンラインで他の例を見てきましたが、それがどのように見えるかから、私が今持っているものはうまくいくはずです.

4

2 に答える 2

2

today.getMonth() は、インデックスがゼロの月を返します。すなわち

1 月: 0、2 月: 1、3 月: 2、...

したがって、前月を取得するために -1 は必要ありません。

var today = new Date();
var lastMonthDays =  new Date(today.getFullYear(), today.getMonth(), 0).getDate();
于 2013-05-17T18:02:16.643 に答える
2

いいえ、 3 月は 31 日なので、 31 になります。これを試して:

var lastMonthDays =  new Date(today.getFullYear(), today.getMonth(), 0).getDate();

day-of-month フィールドの 0 は、事実上、「今月 1 日の前日」を意味します。

于 2013-05-17T18:02:49.767 に答える