Bagaimana untuk Menambah Bulan dengan Tepat pada Tarikh dalam JavaScript?

Susan Sarandon
Lepaskan: 2024-10-28 09:44:29
asal
182 orang telah melayarinya

How to Accurately Add Months to a Date in JavaScript?

Menambah Bulan ke Tarikh dalam JavaScript

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!