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?

Adakah Menetapkan Date.setFullYear(tahun, bulan, 0) Cara Yang Boleh Dipercayai untuk Mencari Hari Terakhir dalam Sebulan Merentasi Penyemak Imbas?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-05 08:44:02347semak imbas

Is Setting Date.setFullYear(year, month, 0) a Reliable Way to Find the Last Day of a Month Across Browsers?

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!

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