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

Patricia Arquette
Lepaskan: 2024-10-30 17:22:03
asal
812 orang telah melayarinya

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);
Salin selepas log masuk

Output:

Date {Tue Oct 23 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}
Salin selepas log masuk

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.
Salin selepas log masuk

Selain itu, spesifikasi bahasa ECMAScript menawarkan cerapan teknikal:

7. Let mn be ?(ℝ(m) modulo 12).
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!