w3resource

JavaScript: Difference between two dates in days

JavaScript Datetime: Exercise-8 with Solution

Write a JavaScript function to get the difference between two dates in days.

Test Data:
console.log(date_diff_indays('04/02/2014', '11/04/2014'));
console.log(date_diff_indays('12/02/2014', '11/04/2014'));
Output :
216
-28

Sample Solution:

JavaScript Code:

// Define a JavaScript function called date_diff_indays with parameters date1 and date2
var date_diff_indays = function(date1, date2) {
    // Create a new Date object representing the first date
    dt1 = new Date(date1);
    // Create a new Date object representing the second date
    dt2 = new Date(date2);
    // Calculate the difference in days between the two dates
    return Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate()) - Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate())) / (1000 * 60 * 60 * 24));
}

// Output the difference in days between '04/02/2014' and '11/04/2014'
console.log(date_diff_indays('04/02/2014', '11/04/2014'));
// Output the difference in days between '12/02/2014' and '11/04/2014'
console.log(date_diff_indays('12/02/2014', '11/04/2014'));

Output:

216
-28

Explanation:

In the exercise above,

  • The code defines a JavaScript function named "date_diff_indays()" with two parameters: 'date1' and 'date2', representing two date strings.
  • Inside the function:
    • It creates new Date objects 'dt1' and 'dt2' by parsing the provided date strings 'date1' and 'date2', respectively.
  • It calculates the difference in days between the two dates using the following steps:
    • It converts both dates to UTC using Date.UTC(), which returns the number of milliseconds since January 1, 1970, 00:00:00 UTC for each date.
    • It then subtracts the UTC timestamp of 'dt1' from the UTC timestamp of 'dt2' to get the difference in milliseconds between the two dates.
    • Finally, it divides the difference in milliseconds by the number of milliseconds in a day (1000 milliseconds 60 seconds 60 minutes * 24 hours) to obtain the difference in days. The "Math.floor()" function is used to round down the result to the nearest integer.
  • The function returns the calculated difference in days.
  • The code then demonstrates the "date_diff_indays()" function by calling it with two different date pairs:
    • '04/02/2014' and '11/04/2014'
    • '12/02/2014' and '11/04/2014'

Flowchart:

Flowchart: JavaScript- Difference between two dates in days

Live Demo:

See the Pen JavaScript - Difference between two dates in days-date-ex- 8 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus.

Previous: Write a JavaScript function to test whether a date is a weekend.
Next: Write a JavaScript function to get the last day of a month.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/javascript-exercises/javascript-date-exercise-8.php