JSFiddle - React, Tailwind, and code Playground
by Mike McCaughan
HTML
<ul id="debug">
</ul>
JavaScript
var compareDates = function(date1, date2, smallestDatePart) {
var diff = 0;
switch (smallestDatePart) {
case 'y':
diff = date1.getFullYear() - date2.getFullYear();
break;
case 'M':
diff = (date1.getFullYear() - date2.getFullYear()) * 100;
diff += date1.getMonth() - date2.getMonth();
break;
case 'd':
diff = (date1.getFullYear() - date2.getFullYear()) * 10000;
diff += (date1.getMonth() - date2.getMonth()) * 100;
diff += date1.getDate() - date2.getDate();
break;
case 'h':
diff = (date1.getFullYear() - date2.getFullYear()) * 1000000;
diff += (date1.getMonth() - date2.getMonth()) * 10000;
diff += (date1.getDate() - date2.getDate()) * 100;
diff += date1.getHours() - date2.getHours();
break;
case 'm':
diff = (date1.getFullYear() - date2.getFullYear()) * 100000000;
diff += (date1.getMonth() - date2.getMonth()) * 1000000;
diff += (date1.getDate() - date2.getDate()) * 10000;
diff += (date1.getHours() - date2.getHours()) * 100;
diff += date1.getMinutes() - date2.getMinutes();
break;
case 's':
diff = (date1.getFullYear() - date2.getFullYear()) * 10000000000;
diff += (date1.getMonth() - date2.getMonth()) * 100000000;
diff += (date1.getDate() - date2.getDate()) * 1000000;
diff += (date1.getHours() - date2.getHours()) * 10000;
diff += (date1.getMinutes() - date2.getMinutes()) * 100;
diff += date1.getSeconds() - date2.getSeconds();
break;
default:
diff = date1.valueOf() - date2.valueOf();
}
return diff === 0 ? 0 : diff < 0 ? -1 : 1;
};
var date1 = new Date();
var date2 = new Date();
date2.setMilliseconds(date2.getMilliseconds() + 1);
$('#debug').append('<li>' + date1 + ' compared to ' + date2 + ', using year: ' + compareDates(date1, date2, 'y') + '</li>');
$('#debug').append('<li>' + date1 + ' compared to ' + date2 + ', using month: ' + compareDates(date1, date2, 'M') + '</li>');
$('#debug').append('<li>' + date1 + ' compared to ' + date2 + ', using day: ' +...