Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menyemak sama ada tarikh adalah antara dua tarikh dalam JavaScript?

Bagaimana untuk menyemak sama ada tarikh adalah antara dua tarikh dalam JavaScript?

WBOY
WBOYke hadapan
2023-09-16 15:13:08628semak imbas

如何在 JavaScript 中检查一个日期是否在两个日期之间?

Dalam JavaScript, kita boleh menggunakan objek Date() untuk mencipta cap masa yang berbeza. Selain itu, kami mungkin perlu menggunakan JavaScript untuk menyemak sama ada tarikh antara dua tarikh.

Sebagai contoh, kami ingin membuat penapis untuk pesanan dalam aplikasi e-dagang berdasarkan tarikh. Jadi kita sepatutnya dapat menapis semua pesanan antara dua tarikh yang dimasukkan oleh pengguna dalam medan input tarikh.

Satu lagi kes penggunaan praktikal untuk menyemak antara dua tarikh adalah dalam aplikasi perbankan. Sebagai contoh, apabila membangunkan aplikasi sistem perbankan, pembangun perlu mencipta penapis yang membolehkan pengguna mengisih semua transaksi antara dua tarikh.

Semak sama ada tarikh antara dua tarikh lain dengan membandingkan tarikh

Dalam JavaScript, kita boleh membandingkan dua contoh objek tarikh. Apabila kita membandingkan dua kejadian objek Tarikh, ia membandingkan jumlah bilangan milisaat sejak 1 Januari 1970, antara dua tarikh.

Jadi kita boleh membandingkan dua tarikh seperti biasa seperti membandingkan nombor dalam JavaScript dan memastikan bahawa satu tarikh adalah antara dua tarikh yang lain.

Tatabahasa

Pengguna boleh mengikuti sintaks berikut untuk memastikan tarikh antara dua tarikh dalam JavaScript.

if (date1 < date2 && date2 < date3) {
   
   // date2 is between the date1 and date3
} else {
   
   // date2 is not between the date1 and date3
 }

Dalam sintaks di atas, pengguna dapat melihat bahawa jika date2 lebih besar daripada date1 dan date2 kurang daripada date3, ini bermakna date2 adalah antara date13 dan

Contoh

Dalam contoh di bawah, kami mencipta tiga cap masa berbeza menggunakan pembina objek Tarikh. Selepas itu, kami menggunakan logik yang dijelaskan dalam sintaks di atas untuk menyemak sama ada

date2 adalah antara date1 dan date3.

Dalam output, pengguna boleh melihat bahawa

date2 terletak di antara date1 dan date3.

<html>
<body>
   <h2><i>Comparing the dates</i> to check if one date is between two.</h2>
   <p id="output"> </p>
   <script>
      let output = document.getElementById("output");
      let date1 = new Date(2020, 03, 11);
      let date2 = new Date(2022, 03, 12);
      let date3 = new Date();
      if (date1 < date2 && date2 < date3) {
         output.innerHTML += date2 + " is between <br> " + date1 + " <br> and <br> " + date3;
      } else {
         output.innerHTML += date2 + " is not between the " + date1 + " <br> and <br>" + date3;
      }
   </script>
</body>
</html>

Buat tarikh baharu daripada rentetan tarikh rawak dan bandingkannya

Sekarang, mari kita pertimbangkan senario di mana kita tidak diberikan cap masa sebagai objek tarikh standard, tetapi tarikh itu diformatkan ke dalam format rentetan. Jadi kita perlu mengekstrak tahun, bulan, hari daripada rentetan tarikh. Selepas itu, kita perlu mencipta cap masa standard untuk nilai yang diperoleh daripada rentetan dan membandingkannya seperti yang kita lakukan dalam bahagian sebelumnya.

Tatabahasa

Apabila diberi rentetan yang diformat secara rawak, pengguna boleh menyemak sama ada tarikh adalah antara dua tarikh dengan mengikut sintaks berikut.

// splitting the dates
let [year1, month1, date1] = prev_date.split(",");
let [year2, month2, date2] = current_date.split(",");
let [year3, month3, date3] = final_date.split(",");

// creating new formatted dates
prev_date = new Date(year1, month1 - 1, date1);
current_date = new Date(year2, month2 - 1, date2);
final_date = new Date(year3, month3 - 1, date3);
if (prev_date < current_date && current_date < final_date) {

   // current_date is between the prev_date and final_date
} else{
   
   // current_date is not between the prev_date and final_date
} 

Dalam sintaks di atas, kami menggunakan pembatas ‘,’ untuk membelah rentetan, tetapi pengguna boleh membahagikannya berdasarkan rentetan tarikh yang diberikan. Selepas itu, kami menyahbina tatasusunan yang diperoleh daripada kaedah split dan mencipta cap masa tarikh standard baharu menggunakan nilai.

Contoh

Dalam contoh ini, kami telah mengambil tiga rentetan tarikh. Seterusnya, kami memisahkannya, mendapatkan nilai tahun, bulan dan tarikh serta menggunakannya untuk membuat tarikh baharu.

Selepas itu, kami membandingkan cap masa baharu untuk memastikan current_date adalah antara prev_date dan Final_date.

<html>
<body>
   <h3>Create a new date from <i> date string and compare them </i> to check if one date is between two</h3>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let prev_date = "2022,10,23";
      let current_date = "2021,11,22";
      let final_date = "2023,12,30";
      let [year1, month1, date1] = prev_date.split(",");
      let [year2, month2, date2] = current_date.split(",");
      let [year3, month3, date3] = final_date.split(",");
      prev_date = new Date(year1, month1 - 1, date1);
      current_date = new Date(year2, month2 - 1, date2);
      final_date = new Date(year3, month3 - 1, date3);
      if (prev_date < current_date && current_date < final_date) {
         output.innerHTML += current_date + " is between <br>" + prev_date + "<br> and <br> " + final_date;
      } else {
         output.innerHTML += current_date + " is not between <br>" + prev_date + " <br> and <br> " + final_date;
      }
   </script>
</body>
</html> 

Pengguna mempelajari dua cara untuk menyemak sama ada tarikh antara dua tarikh lain. Pengguna boleh menggunakan kaedah pertama apabila diberi cap waktu standard bagi objek Tarikh, jika tidak, pengguna boleh mengekstrak nilai yang berbeza daripada rentetan tarikh dan menggunakannya untuk mencipta contoh baharu objek tarikh dan membandingkannya.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada tarikh adalah antara dua tarikh dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam