Kenaikan tarikh yang diberikan dalam JavaScript

PHPz
Lepaskan: 2023-09-10 13:17:02
ke hadapan
1114 orang telah melayarinya

在 JavaScript 中增加给定日期

Dalam artikel ini, kita akan membincangkan cara menambah tarikh tertentu menggunakan JavaScript. Pertama, mari kita menganalisis dan memahami maksud ayat ini. Memandangkan tarikh x = "05-02-2023", kami ingin menambah y = 7 hari pada tarikh tersebut dan mencetak tarikh yang terhasil "12-02-2023". Sebagai manusia, kita boleh menambah 5 Februari hingga 7 hari secara manual dan mendapatkan hasilnya. Tetapi kami memerlukan JavaScript untuk melakukan ini secara pemrograman.

Kami akan membincangkan beberapa teknik untuk melakukan ini dalam artikel ini.

Gunakan fungsi addDays()

Fungsi addDays menerima 2 parameter, iaitu tarikh dan bilangan hari untuk dinaikkan. Dalam kod di bawah, kami akan menambah 7 hari pada tarikh semasa dan mencetak tarikh tambahan pada konsol.

Contoh

function addDays(date, days) {
   
   // Function to add Days
   var result = new Date(date);
   result.setDate(result.getDate() + days);
   return result;
}
let date = new Date();
console.log("Current date is "+date);
let incrementedDate = addDays(date, 7);
console.log("Increment date is "+incrementedDate);
Salin selepas log masuk

Output

Current date is Tue Mar 07 2023 11:38:38 GMT+0530 (India Standard Time)
Increment date is Tue Mar 14 2023 11:38:38 GMT+0530 (India Standard Time)
Salin selepas log masuk

Gunakan fungsi setDate() dan getDate()

Fungsi getDate mengembalikan integer antara 1 dan 31, mewakili hari dalam sebulan. Kemudian gunakan fungsi setdate untuk menetapkan nilai pembolehubah kepada tarikh kenaikan. Di sini kami akan menambah 14 hari ke tarikh semasa dan memaparkan hasilnya ke konsol. Bilangan hari yang bertambah akan disimpan ke pembolehubah yang sama "tarikh", jadi tidak perlu pembolehubah lain.

Contoh

let date = new Date();
console.log("Current date is "+date);
date.setDate(date.getDate()+14);
console.log("Increment date is "+date);
Salin selepas log masuk

Output

Current date is Tue Mar 07 2023 11:40:55 GMT+0530 (India Standard Time)
Increment date is Tue Mar 21 2023 11:40:55 GMT+0530 (India Standard Time)
Salin selepas log masuk

Fungsi yang ditentukan pengguna

Di sini, daripada menggunakan sebarang fungsi terbina dalam, kami akan mencipta fungsi kami sendiri untuk menambah tarikh. Kami mula-mula mengekstrak integer hari bulan, bulan dan tahun dari tarikh yang diberikan dan menyimpannya sebagai pembolehubah d, m dan y masing-masing. Kami kemudian menambah bilangan hari pada pembolehubah d atau hari dan menukarnya kembali kepada format tarikh apabila dikembalikan. Pada masa ini, fungsi ini mempunyai keupayaan terhad dalam menambah hari melebihi 1 bulan, tetapi ini boleh diubah suai atau dielakkan paling banyak kerana fungsi terbina dalam wujud.

Contoh

function AddDays(start,days){
   var d=start.getDate();
   var m=start.getMonth()+1;
   
   //getMonth returns the index of the month hence +1 is added
   var y=start.getYear();
   
   //getYear returns the year minus 1900 in the current javascript version, hence 1900 is added to it below
   var newDate=m+"-"+(d+days)+"-"+(y+1900);
   return new Date(newDate);
}
today=new Date();
console.log("The date today is "+today);
console.log("The date after 5 days is "+AddDays(today,5));
Salin selepas log masuk

Output

The date today is Tue Mar 07 2023 11:43:02 GMT+0530 (India Standard Time)
The date after 5 days is Sun Mar 12 2023 00:00:00 GMT+0530 (India Standard Time)
Salin selepas log masuk

Tambah hari bekerja sahaja

Seseorang mungkin sering melihat tapak web e-dagang menggunakan kenaikan hari untuk memaparkan anggaran masa penghantaran. Waktu penghantaran ini biasanya tidak tersedia pada hari Ahad. Ahad mesti dikecualikan semasa mengira anggaran tarikh penghantaran. Cuti umum juga boleh dikecualikan.

Begini caranya untuk menambah 7 hari bekerja ke tarikh semasa.

Contoh

function AddWorkingDays(start,days){
  
  // retrieve the index of the start date
   var d=start.getDay();
   var incrementby=days;
   if(d==0){
     
     // 0 stands for Sunday, if current day is a Sunday then add 1 day
      incrementby++;
   }
   if (d + incrementby >= 6) {
      
      //Subtract days in current working week from working days
      var remainingWorkingDays = incrementby - (5 - d);
      
      //Add current working week's weekend
      incrementby += 2;
      if (remainingWorkingDays > 5) {
         
         //Add two days for every working week by finding out how many weeks are included
         incrementby += 2 * Math.floor(remainingWorkingDays / 5);
        
         //Exclude the final weekend if the remainingWorkingDays is a equal to an exact number of weeks
         if (remainingWorkingDays % 5 == 0)
         incrementby -= 2;
      }
   }
   start.setDate(start.getDate() + incrementby);
   return start;
}
var today=new Date();
console.log("Current date is "+today);
console.log("8 working days later would be "+AddWorkingDays(today,8));
Salin selepas log masuk

Output

Current date is Tue Mar 07 2023 11:45:58 GMT+0530 (India Standard Time)
8 working days later would be Fri Mar 17 2023 11:45:58 GMT+0530 (India Standard Time)
Salin selepas log masuk

Kesimpulan

Semua kaedah di atas membolehkan anda menambah hari, bulan dan juga tahun pada tarikh tertentu. Fungsi menambah hari bekerja sangat berguna dalam industri dan boleh digunakan oleh platform e-dagang, laman web bawa pulang, dsb. Selain kaedah ini, kami juga boleh memanfaatkan pustaka Moment.js, tetapi ini akan membawa kerumitan yang tidak perlu kepada kerja. program.

Atas ialah kandungan terperinci Kenaikan tarikh yang diberikan dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
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!