Home >Web Front-end >JS Tutorial >How to check two timestamps for the same day in 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.
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.
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.
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>
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.
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.
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>
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.
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 }
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!