Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah Pembina Tarikh JavaScript Kembali Oktober Apabila Saya Menyediakan 9 untuk Bulan tersebut?

Mengapakah Pembina Tarikh JavaScript Kembali Oktober Apabila Saya Menyediakan 9 untuk Bulan tersebut?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 17:22:03813semak imbas

Why Does JavaScript's Date Constructor Return October When I Provide 9 for the Month?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn