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!