Dalam urutan ini, pembangun mendapatkan bantuan dalam menambah dua bulan pada tarikh tamat yang disediakan pengguna.
Untuk mencapai matlamat ini, fungsi tersuai yang dipanggil addMonths() disyorkan:
<code class="js">function addMonths(dateObj, num) { return dateObj.setMonth(dateObj.getMonth() + num); }</code>
Walau bagaimanapun, pendekatan mudah ini menghadapi had. Menambahkan sebulan kepada 31 Julai, sebagai contoh, akan menyebabkan 1 Oktober dan bukannya 30 September. Untuk menangani isu ini, fungsi yang lebih bernuansa boleh digunakan:
<code class="js">function addMonths(dateObj, num) { var currentMonth = dateObj.getMonth() + dateObj.getFullYear() * 12; dateObj.setMonth(dateObj.getMonth() + num); var diff = dateObj.getMonth() + dateObj.getFullYear() * 12 - currentMonth; if (diff != num) { dateObj.setDate(0); } return dateObj; }</code>
Fungsi ini mengekalkan peraturan akhir bulan dengan menetapkan semula tarikh ke hari terakhir bulan sebelumnya jika bulan yang diubah suai tidak betul .
Sebagai alternatif yang lebih mudah, fungsi dengan semakan pusing ganti bulan yang diperkemas boleh digunakan:
<code class="js">function addMonths(date, months) { var d = date.getDate(); date.setMonth(date.getMonth() + +months); if (date.getDate() != d) { date.setDate(0); } return date; }</code>
Pendekatan ini juga memastikan tingkah laku akhir bulan dipelihara sementara menyediakan pelaksanaan yang dipermudahkan.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Bulan dengan Tepat pada Tarikh dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!