如何使用 JavaScript 檢查日期是否小於 1 小時前?
在本教程中,我們將學習如何查詢兩個日期之間的差異,並檢查該差異是否小於一小時。有時,開發人員必須使用 Date 物件並每小時執行某些操作。因此,這可以是一種方法,用於檢查是否在一小時前執行了特定操作,如果執行了,則再次執行;否則,等待完成一小時。
在這裡,我們將學習使用 JavaScript 檢查日期是否小於 1 小時前的不同方法。
使用 getTime() 方法
getTime() 方法返回自 1970 年 1 月 1 日以來的日期總毫秒數。因此,我們可以使用 getTime() 方法查詢當前日期和先前日期的總毫秒數。之後,我們可以找到兩個日期的總毫秒數之差,並將其與小時的總毫秒數(即 1000*60*60)進行比較。
語法
使用者可以按照以下語法使用 JavaScript 檢查日期是否小於 1 小時前。
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 }
在上述語法中,hoursMilli 包含小時的總毫秒數,我們使用 Math.abs() 方法獲取兩個日期之間毫秒數的絕對差。
步驟
步驟 1 - 建立兩個日期。
步驟 2 - 使用 getTime() 方法獲取兩個日期的總毫秒數,找到它們之間的差,並將它的值儲存在 difference 變數中。
步驟 3 - 將 1 小時的總毫秒數儲存在 hoursMilli 變數中。
步驟 4 - 如果 difference 變數的絕對值小於 hourMilli,則意味著 1 小時尚未過去。
示例
在下面的示例中,我們建立了兩個具有不同時間戳的不同日期。我們根據上述步驟中說明的方法,將日期和 current_date 的總毫秒數之差與 1 小時的總毫秒數進行比較,以檢查日期是否小於一小時前。
<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>
使用 Date 物件的 setMinutes() 方法
Date 物件中的 setMinutes() 方法允許開發人員設定時間戳中的分鐘數。它接受三個引數,分別表示要為日期設定的分鐘、秒和毫秒,秒和毫秒是可選的。
如果我們將分鐘設定為零並比較兩個日期,我們可以知道特定日期是否在一小時前。
語法
使用者可以按照以下語法使用 setMinute() 方法來檢查兩個日期之間的差值是否小於一小時。
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. }
步驟
步驟 1 - 使用 setMinutes() 方法,並將 0, 0, 0 作為引數傳遞,以將 previous_date 的分鐘、秒和毫秒設定為零。
步驟 2 - 也將 current_date 的分鐘設定為零。
步驟 3 - 獲取兩個日期之間的差;如果它是零,則該日期小於一小時前。
示例
在這個例子中,我們使用了 setMinutes() 方法將日期的總分鐘數設定為零。之後,我們取日期的差值,它返回日期之間毫秒數的差值。
如果差值為零,則兩個日期的年、月、日和小時相同。所以,我們可以說那一天不到 1 小時前。
<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>
在本教程中,我們學習瞭如何查詢兩個日期之間的差異,並檢查日期是否小於 1 小時前。此外,使用者可以使用 Moment Js 庫的 diff() 和 isAfter() 方法來檢查相同的內容,但使用者應該記住,Moment JS 庫現在已棄用。