Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa JavaScript's getMonth() Menghasilkan Nilai Bulan Sebelumnya?

Mengapa JavaScript's getMonth() Menghasilkan Nilai Bulan Sebelumnya?

DDD
DDDasal
2024-10-19 13:17:01991semak imbas

Why Does JavaScript's getMonth() Yield the Previous Month's Value?

Mengapa JavaScript's getMonth() Mengembalikan Bulan Sebelumnya?

Apabila menggunakan datepicker yang menyediakan tarikh dalam format "Ahad Jul 7 00:00:00 EDT 2013," anda mungkin perasan bahawa kaedah getMonth() mengembalikan bulan sebelumnya. Sebagai contoh, coretan kod di bawah:

var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth(); //gives 6 instead of 7

Sebab:

Punca percanggahan ini terletak pada fakta bahawa kaedah getMonth() JavaScript menetapkan bulan a indeks berasaskan sifar. Oleh itu, Januari diberikan nilai 0, Februari diberikan 1, dan seterusnya. Apabila memanggil getMonth() pada tarikh yang mewakili Julai, ia sebenarnya mengembalikan nilai untuk Jun (6).

Penyelesaian:

Untuk mendapatkan bulan yang betul, anda boleh gunakan kod pelarasan berikut:

d1.getMonth() + 1; //returns the correct month, which is 7 for July

Dengan menambah 1 pada hasil getMonth(), anda mengimbangi indeks berasaskan sifar dan memperoleh bulan mengikut konvensyen kalendar.

Atas ialah kandungan terperinci Mengapa JavaScript's getMonth() Menghasilkan Nilai Bulan Sebelumnya?. 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