Home  >  Article  >  Web Front-end  >  How to check two timestamps for the same day in JavaScript?

How to check two timestamps for the same day in JavaScript?

PHPz
PHPzforward
2023-09-15 21:45:03861browse

如何在 JavaScript 中检查同一天的两个时间戳?

You will never use JavaScript when developing an application, and you will never use Date objects. Date object is very important in JavaScript as it allows us to create and manipulate dates as per developer requirements.

In this tutorial, we will learn to check whether two timestamps are the same day or different days. In real-time development, it is very useful. For example, we want users to perform some daily tasks. So we need to check if the user performed today's task, we can check this by comparing the last date when the task was performed with the current date.

Compare the year, month and day of two Date objects respectively

Date() The object contains getFullYear(), getMonth(), and getDate() methods for getting the year, month, and date from a date value, respectively. We can check whether the year, month, and day of two timestamps are the same; they are both on the same day.

grammar

Users can check two timestamps of the same day using getFullYear(), getMonth(), getDate() and equality operators as per the following syntax.

if (
   date1.getFullYear() === date2.getFullYear() &&
   date1.getMonth() === date2.getMonth() &&
   date1.getDate() === date2.getDate()
) {
   
   // date is the same
} else {
   
   // date is not the same
} 

In the above syntax, date1 and date2 are two different timestamps.

Example

In the example below, we create three dates named date1, date2 and date3. We created the compareTwoDates() function which uses the above logic to compare two timestamps of the same day.

<html>
<body>
   <h3>Compare the<i> year, month, and date </i> to check for two timestams of same day.</h3>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      var date1 = new Date();
      var date2 = new Date(date1.getTime() - 3000);
      function compareTwoDates(date1, date2) {
         
         // if the year, month, and date are the same, it means two dates are on the same day
         if (
            date1.getFullYear() === date2.getFullYear() &&
            date1.getMonth() === date2.getMonth() &&
            date1.getDate() === date2.getDate()
         ) {
            output.innerHTML += date1 + " and <br>" + date2 + " <br>are of same day. </br><br>";
         } else {
            output.innerHTML += date1 + " and <br>" + date2 + " <br>are not of same day. </br>";
         }
      }
      compareTwoDates(date1, date2);
      let date3 = new Date(2020, 11, 10);
      compareTwoDates(date1, date3);
   </script> 
</body>
</html>

Set hours, minutes, seconds and milliseconds to zero and compare two dates

Date() The setHours() method of the object allows us to set the hours, minutes, seconds and milliseconds in the timestamp. It takes four parameters, representing hours, minutes, seconds, and milliseconds. Also, the last three parameters are optional, but we set them all to zero. When we set the hours, minutes, seconds and milliseconds to zero, we can get the timestamp of the start of the day. If two timestamps have the same start time, the timestamps are for the same day.

grammar

Follow the syntax below to compare two timestamps on the same day.

date1.setHours(0, 0, 0, 0);
date2.setHours(0, 0, 0, 0);
   
// compare timestamp
if (date1 == date2) {
   
   // date is the same
} else {
   
   // date is not the same
} 

In the above syntax, we use the setHours() method to compare date1 and date2 after setting the hours to zero.

Example

In the following example, we create two timestamps using Date() objects. The CompareTwoDates() function checks whether the timestamps are on the same day by setting the hours, minutes, seconds, and milliseconds of the two timestamps to zero.

<html>
<body>
   <h3>Seting<i> Hours, minutes, seconds, and milliseconds </i> to zero to check for two timestamps of the same day </h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      var date1 = new Date();
      var date2 = new Date(date1.getTime() - 3786000);
      function compareTwoDates(date1, date2) {
         
         // set hours, minutes, seconds, and milliseconds zero in the timestamp
         date1.setHours(0, 0, 0, 0);
         date2.setHours(0, 0, 0, 0);
         
         // compare timestamp
         if (date1 == date2) {
            output.innerHTML += date1 + " and <br>" + date2 + "<br> are of same day. </br>";
         } else {
            output.innerHTML += date1 + " and <br>" + date2 + "<br> are not of same day. </br>";
         }
      }
      compareTwoDates(date1, date2);
   </script>
</body>
</html> 

Use toDateString() method

toDateString() method allows us to get date string from timestamp only and it removes time from timestamp and returns only date string. If the date string of two timestamps is the same, it can be said that both are on the same day.

grammar

Use the toDateString() method according to the following syntax to check two timestamps on the same day.

if (date1.toDateString() == date2.toDateString()) {
   
   // dates are of the same day
} else {
   
   // dates are not on the same day
} 

Example

In the example below, when the user clicks the "Compare Two Dates" button, it calls the isForSameDays() function. In the isForSameDays() function, we use toDateString() method to get only the date string from the timestamp and use the equality operator to compare the two date strings.

<html>
<body>
   <h3>Using the <i> toDateString() method </i> to check for two timestams of same day.</h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      var date1 = new Date();
      var date2 = new Date(2020, 01, 21, 12, 23, 22);
      
      // compare timestamp using the toDateString() method
      if (date1.toDateString() == date2.toDateString()) {
         output.innerHTML += date1 + " and " + date2 + " are of same day. </br>";
      } else {
         output.innerHTML += date1 + " and " + date2 + " are not of same day. </br>";
      }
   </script>
</body>
</html>

This tutorial teaches us three methods to check two timestamps of the same day. The third way to use the toDateString() method is a very simple one-liner.

The above is the detailed content of How to check two timestamps for the same day in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete