2016-07-21 23 views
2
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1); 
    var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0); 

我々はfirstDayで、それが何をするかLASTDAYで +1,0にし、を与え、なぜ誰かがこのコードを説明していただけます....私はそれが最初の日付と最後の日付を与えることを知っている私はそれを使用している理由が必要です...JavaScriptで現在の月の最初の日と最終日

答えて

1

JavaScriptのDate JavaScriptのDateオブジェクトは無効日/月を扱う点でかなりスマートです:無効な日、月などを指定することができますそして、次の/前の月、年などに「ラッピング」することによってそれを処理する。

は、したがって、上記の中で、この行:

var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0); 

は... 月(date.getMonth() + 1)の日付を作成しますが、その月の0日目。 0日ではなく1日から始まるので、Dateオブジェクトは1日前に戻ってくると考えています  —これは前月の終わりを示しています。

この例では、Date constructorはこの動作を定義する仕様の抽象オペレーションMakeDayを使用しています。

0

これは、DateのJavaScriptで使用するコンストラクタの1つです。

new Date(year, month, day, hours, minutes, seconds, milliseconds)

だから最初の文の1)は、(第2の文については1

の日は、getMonth()機能は、我々はgetMonthを行うので、0から11までの値を返す設定します+ 1、次の月に移動します。そして、day引数を0として使用すると、前の月の最終日に戻るように強制されます。

関連する問題