Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menyemak sama ada tarikh kurang daripada 1 jam yang lalu menggunakan JavaScript?

Bagaimana untuk menyemak sama ada tarikh kurang daripada 1 jam yang lalu menggunakan JavaScript?

王林
王林ke hadapan
2023-08-25 09:05:021509semak imbas

如何使用 JavaScript 检查日期是否小于 1 小时前?

Dalam tutorial ini, kita akan belajar mencari perbezaan antara dua tarikh dan menyemak sama ada perbezaannya kurang daripada satu jam. Kadangkala, pembangun perlu bekerja dengan objek Tarikh dan melakukan beberapa operasi setiap jam. Jadi ini boleh menjadi cara untuk menyemak sama ada tindakan tertentu telah dilakukan sejam yang lalu dan kemudian lakukannya sekali lagi, jika tidak, tunggu jam itu selesai.

Di sini kita akan mempelajari cara berbeza untuk menyemak sama ada tarikh kurang daripada 1 jam yang lalu menggunakan JavaScript.

Gunakan kaedah getTime()

Kaedah

getTime() mengembalikan jumlah bilangan milisaat dalam satu tarikh sejak 1 Januari 1970. Oleh itu, kita boleh menggunakan kaedah getTime() untuk mencari jumlah bilangan milisaat sejak 1 Januari 1970 untuk tarikh semasa dan sebelumnya. Selepas itu, kita boleh mencari perbezaan dalam jumlah milisaat kedua-dua tarikh dan membandingkannya dengan jumlah milisaat jam itu, iaitu 1000*60*60.

Tatabahasa

Pengguna boleh menggunakan JavaScript mengikut sintaks berikut untuk menyemak sama ada tarikh tersebut kurang daripada 1 jam yang lalu.

let current_date = new Date();
let difference = current_date.getTime() - date.getTime();
let hoursMilli = 1000 * 60 * 60; // milliseconds * seconds * minutes
if (Math.abs(difference) < hoursMilli) {
   
   // less than 1 hour spent
} else {
   
   // more than 1 hour ago
}

Dalam sintaks di atas, hoursMilli mengandungi jumlah milisaat jam dan kami menggunakan kaedah Math.abs() untuk mendapatkan perbezaan mutlak dalam milisaat antara dua tarikh.

Langkah

Langkah 1 - Buat dua tarikh.

Langkah 2 - Dapatkan jumlah milisaat dua tarikh menggunakan kaedah getTime(), cari perbezaan antara tarikh tersebut dan simpan nilainya dalam pembolehubah perbezaan.

Langkah 3 - Simpan jumlah bilangan milisaat selama 1 jam dalam pembolehubah jamMilli.

Langkah 4 - Jika nilai mutlak pembolehubah perbezaan kurang daripada jamMilli, bermakna 1 jam belum habis lagi.

Contoh

Dalam contoh di bawah, kami telah mencipta dua tarikh berbeza dengan cap masa berbeza. Kami mengikuti langkah di atas dan membandingkan tarikh dan jumlah milisaat current_date dengan jumlah milisaat 1 jam untuk menyemak sama ada tarikh itu kurang daripada sejam yang lalu.

<html>
<body>
   <h3>Using the <i> custom algorithm </i> to check if the date was less than 1 hour ago.</h2>
   <div id="output"> </div>
   <script>
      let output = document.getElementById("output");
      let date1 = new Date(2023, 02, 11);
      
      // Creating a date that is not less than 1 hour ago
      let date2 = new Date(new Date().getTime() - 20302);   
      function isHourSpent(date) {
         let current_date = new Date();
         let difference = current_date.getTime() - date.getTime();
         console.log(difference);
         let hoursMilli = 1000 * 60 * 60;
         
         // comparing the hour's total milliseconds and the difference between the two dates.
         if (Math.abs(difference) < hoursMilli) {
            output.innerHTML += "The " + date + " is less than an hour ago! <br/>";
         } else {
            output.innerHTML += "The " + date + " is not less than hour ago! <br/>";
         }
      }
      isHourSpent(date1);
      isHourSpent(date2);
   </script>
</body>
</html> 

Gunakan kaedah setMinutes() bagi objek tarikh

Kaedah

setMinutes() dalam objek Date membenarkan pembangun menetapkan minit dalam cap waktu. Tarikh memerlukan tiga parameter: minit, saat dan milisaat untuk ditetapkan Saat dan milisaat adalah pilihan.

Jika kita menetapkan minit kepada sifar dan membandingkan kedua-dua tarikh itu, kita boleh tahu sama ada tarikh tertentu adalah sejam yang lalu.

Tatabahasa

Pengguna boleh menggunakan kaedah setMinute() mengikut sintaks di bawah untuk menyemak sama ada perbezaan antara dua tarikh adalah kurang daripada satu jam.

date.setMinutes(0, 0, 0);
current_date.setMinutes(0, 0, 0);
if (date - current_date == 0) {
   
   // difference between the two dates is not more than an hour
} else {
   
   // difference between two dates more than an hour.
} 

Langkah

Langkah 1 - Gunakan kaedah setMinutes() dan lulus 0, 0, 0 sebagai parameter untuk menetapkan minit, saat dan milisaat kepada sifar > tarikh sebelumnya .

Langkah 2 - Tetapkan minit tarikh_semasa kepada sifar.

Langkah 3 - Kira perbezaan antara kedua-dua tarikh itu jika sifar, tarikh itu kurang daripada sejam yang lalu.

Contoh

Dalam contoh ini, kami menggunakan kaedah setMinutes() untuk menetapkan tarikh dan jumlah bilangan minit kepada sifar. Selepas itu, kami mengambil perbezaan antara tarikh dan mengembalikan perbezaan dalam milisaat antara tarikh.

Jika bezanya sifar, tahun, bulan, hari dan jam kedua-dua tarikh adalah sama. Oleh itu, kita boleh mengatakan bahawa hari ini tidak sampai 1 jam yang lalu.

<html>
<body>
   <h3>Using the <i> setMinutes() method </i> to check if the date was less than 1 hour ago.</h2>
   <div id="output"> </div>
   <script>
      let output = document.getElementById("output");
      let date1 = new Date(2022, 12, 01);
      let date2 = new Date(new Date().getTime() - 20302);
      
      function isHourSpent(date) {
         let current_date = new Date();
         date.setMinutes(0, 0, 0);
         current_date.setMinutes(0, 0, 0);
         if (date - current_date == 0) {
            output.innerHTML += "The " + date + " is less than hour ago! <br/>";
         } else {
            output.innerHTML += "The " + date + " is not less than an hour ago! <br/>";
         }
      }
      isHourSpent(date1);
      isHourSpent(date2);
   </script>
</body>
</html>

Dalam tutorial ini, kami belajar untuk mencari perbezaan antara dua tarikh dan menyemak sama ada tarikh itu kurang daripada 1 jam yang lalu. Selain itu, pengguna boleh menggunakan kaedah diff() dan isAfter() pustaka Moment Js untuk menyemak sama ada ia sama, tetapi pengguna harus ingat bahawa pustaka Moment JS kini tidak digunakan lagi.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada tarikh kurang daripada 1 jam yang lalu menggunakan 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