Compare Two Dates, Ignoring Time, in JavaScript
Dec 4, 2020
To compare two dates, ignoring differences in hours, minutes, or seconds, you can use the
toDateString()
function and compare the strings:
const d1 = new Date('2020-06-01T12:00:00.000Z');
const d2 = new Date('2020-06-01T12:30:00.000Z');
const d3 = new Date('2020-05-01T12:00:00.000Z');
d1.toDateString() === d2.toDateString(); // true
d1.toDateString() === d3.toDateString(); // false
The more nuanced question is which timezone you want to compare the dates in. The toDateString()
function calculates the date in the server's local timezone. In order to compare dates in UTC time
as opposed to server local time, you can use the toUTCString()
function and slice()
the result to just compare the date portion:
const d1 = new Date('2020-06-01T00:00:01.000Z');
const d2 = new Date('2020-06-01T02:00:00.000Z');
const d3 = new Date('2020-05-31T23:59:59.000Z');
// The first part of the `toUTCString()` output format according to:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toDateString
const format = 'Www, dd Mmm yyyy';
d1.toUTCString().slice(0, format.length) === d2.toUTCString().slice(0, format.length); // true
d1.toUTCString().slice(0, format.length) === d3.toUTCString().slice(0, format.length); // false
More Fundamentals Tutorials
- Convert a Set to an Array in JavaScript
- What Does Setting the Length of a JavaScript Array Do?
- Get the Last Element in an Array in JavaScript
- Skip an Index in JavaScript Array map()
- Conditionally Add an Object to an Array in JavaScript
- Validate Emails using Regex in JavaScript
- JavaScript Copy to Clipboard