Rumah >hujung hadapan web >tutorial js >Adakah Menetapkan Date.setFullYear(tahun, bulan, 0) Cara Yang Boleh Dipercayai untuk Mencari Hari Terakhir dalam Sebulan Merentasi Penyemak Imbas?
Mencari Hari Terakhir dalam Bulan Dengan Tepat
Adalah diketahui bahawa menetapkan nilai hari dalam Date.setFullYear kepada 0 mendapatkan semula hari terakhir bulan sebelumnya. Contohnya:
<code class="js">d = new Date(); d.setFullYear(2008, 11, 0); // Returns Sun Nov 30 2008</code>
Tingkah laku ini didokumenkan di tapak web Mozilla. Walau bagaimanapun, ia menimbulkan persoalan sama ada ciri merentas penyemak imbas ini boleh dipercayai atau jika kaedah alternatif harus dipertimbangkan.
Keserasian Merentas Penyemak Imbas
Malangnya, ciri ini adalah tidak serasi merentas pelayar. Walaupun ia berfungsi dalam kebanyakan penyemak imbas utama, termasuk Chrome, Firefox dan Safari, ia tidak berkelakuan secara konsisten dalam Internet Explorer. Dalam Internet Explorer, menetapkan nilai hari kepada 0 mungkin tidak selalu mengembalikan hari terakhir bulan sebelumnya.
Kaedah Alternatif
Untuk memastikan ketepatan merentas berbilang penyemak imbas, alternatif kaedah untuk mencari hari terakhir dalam sebulan adalah disyorkan. Satu pendekatan yang boleh dipercayai ialah menggunakan kaedah Date.getMonth(), yang mengembalikan nombor bulan (berasaskan 0). Anda kemudian boleh menolak satu daripada nilai ini untuk mendapatkan nombor bulan sebelumnya dan menetapkan tarikh kepada hari terakhir bulan itu:
<code class="js">var month = 0; // January var d = new Date(2008, month + 1, 0); console.log(d.toString()); // Last day in January</code>
Kaedah ini mengambil semula hari terakhir dalam sebulan dengan tepat, tanpa mengira penyemak imbas sedang digunakan.
Atas ialah kandungan terperinci Adakah Menetapkan Date.setFullYear(tahun, bulan, 0) Cara Yang Boleh Dipercayai untuk Mencari Hari Terakhir dalam Sebulan Merentasi Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!