JavaScript 如何检查日期是否少于1小时前

JavaScript 如何检查日期是否少于1小时前

在本教程中,我们将学习如何找到两个日期之间的差异,并检查差异是否少于一小时。有时,开发人员必须使用Date对象并每小时执行一些操作。因此,这可以是一种方法,检查特定操作是否在一个小时之前执行过,如果是,则再次执行;否则,等待完成一个小时。

在这里,我们将学习使用JavaScript检查日期是否少于1小时前的不同方法。

使用getTime()方法

getTime() 方法返回自1970年1月1日以来日期的总毫秒数。因此,我们可以使用 getTime() 方法来找到当前日期和先前日期的总毫秒数。然后,我们可以找到两个日期的总毫秒数的差异,并将其与每小时的总毫秒数进行比较,即10006060。

语法

用户可以按照以下语法使用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() 方法获取两个日期的总毫秒数,找到它们之间的差异,并将其值存储在差异变量中。

步骤3 - 将1小时的总毫秒数存储在hoursMilli变量中。

步骤4 - 如果差异变量的绝对值小于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()方法

setMinutes()方法允许开发者设置时间戳中的分钟部分。它接收三个参数,分别表示要设置的分钟,秒和毫秒,其中秒和毫秒是可选的。

如果我们将分钟设置为零并比较两个日期,我们可以知道一个特定日期是不是在一小时之前。

语法

用户可以按照以下语法使用setMinutes()方法来判断两个日期之间的差值是否小于一小时。

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作为参数传递给设置分钟、秒和毫秒为0的 previous_date

步骤2 - 同样地,为 current_date 设置分钟为0。

步骤3 - 取两个日期之间的差异;如果差为0,则表示日期晚于1小时前。

示例

在此示例中,我们使用 setMinutes() 方法将日期和零的总分钟数。然后,我们取得日期之间的差异,返回日期之间的毫秒差异。

如果差异为0,则表示两个日期的年、月、日和小时相同。因此,我们可以说这一天比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库现在已经过时。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程