Rumah > Artikel > hujung hadapan web > Mengapakah Pembina Tarikh JavaScript Kembali Oktober Apabila Saya Menyediakan 9 untuk Bulan tersebut?
Melayari Percanggahan Bulan dalam Pembina Tarikh JavaScript
Apabila bekerja dengan tarikh dalam JavaScript, adalah penting untuk memahami keanehan cara bulan diindeks. Pertanyaan terbaru mengenai Mozilla Firefox Firebug menimbulkan kebimbangan:
var myDate = new Date(2012, 9, 23, 0, 0, 0, 0); console.log(myDate);
Output:
Date {Tue Oct 23 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}
Menyelidiki percanggahan, pengguna melihat hasil yang tidak dijangka: JavaScript mengembalikan tarikh pada bulan Oktober dan bukannya September, seperti yang dimaksudkan.
Menyingkap Kebenaran: Pengindeksan Berasaskan Sifar
Kuncinya terletak pada pengindeksan berasaskan sifar yang digunakan oleh pembina Tarikh JavaScript selama berbulan-bulan. Dalam skim pengindeksan ini, bulan bermula dengan 0 untuk Januari, dan 11 mewakili Disember. Oleh itu, indeks bulan yang diluluskan dalam pembina (9) sebenarnya sepadan dengan Oktober, bukan September.
Menjelaskan dengan Rujukan:
Rangkaian Pembangun Mozilla (MDN) menyediakan panduan yang jelas:
month: Integer value representing the month, beginning with 0 for January to 11 for December.
Selain itu, spesifikasi bahasa ECMAScript menawarkan cerapan teknikal:
7. Let mn be ?(ℝ(m) modulo 12).
Baris ini menjelaskan bahawa input bulan menjalani operasi modulo dengan 12, dengan berkesan membalut indeks bulan dalam julat 0 hingga 11.
Oleh itu, apabila membina tarikh dalam JavaScript, adalah penting untuk diingat bahawa bulan adalah sifar diindeks untuk mengelakkan sebarang kekeliruan atau hasil yang tidak dijangka.
Atas ialah kandungan terperinci Mengapakah Pembina Tarikh JavaScript Kembali Oktober Apabila Saya Menyediakan 9 untuk Bulan tersebut?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!