JavaScript
// Method 1: Compare timestamps
function compareDates(date1, date2) {
if (date1.getTime() === date2.getTime()) {
return 0; // Equal
} else if (date1.getTime() > date2.getTime()) {
return 1; // date1 is later
} else {
return -1; // date1 is earlier
}
}
const date1 = new Date('2024-01-15');
const date2 = new Date('2024-01-20');
console.log('Compare:', compareDates(date1, date2));
// Method 2: Simple comparisons
console.log('date1 > date2:', date1 > date2);
console.log('date1 < date2:', date1 < date2);
console.log('date1 === date2:', date1.getTime() === date2.getTime());
// Method 3: Check if date is in range
function isDateInRange(date, startDate, endDate) {
return date >= startDate && date <= endDate;
}
const checkDate = new Date('2024-01-18');
const start = new Date('2024-01-15');
const end = new Date('2024-01-20');
console.log('In range:', isDateInRange(checkDate, start, end));
// Method 4: Check if date is today
function isToday(date) {
const today = new Date();
return date.getDate() === today.getDate() &&
date.getMonth() === today.getMonth() &&
date.getFullYear() === today.getFullYear();
}
console.log('Is today:', isToday(new Date()));
// Method 5: Check if date is past/future
function isPast(date) {
return date < new Date();
}
function isFuture(date) {
return date > new Date();
}
console.log('Is past:', isPast(new Date('2020-01-01')));
console.log('Is future:', isFuture(new Date('2025-01-01')));
// Method 6: Compare dates (ignore time)
function compareDatesOnly(date1, date2) {
const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
return d1.getTime() - d2.getTime();
}
const dateWithTime = new Date('2024-01-15T15:30:00');
const dateWithoutTime = new Date('2024-01-15T00:00:00');
console.log('Same date (ignore time):', compareDatesOnly(dateWithTime, dateWithoutTime) === 0);Output
Compare: -1 date1 > date2: false date1 < date2: true date1 === date2: false In range: true Is today: true Is past: true Is future: true Same date (ignore time): true
Date comparison checks relationships.
Comparison Methods
- getTime(): Compare timestamps
- Direct comparison: >, <, ===
- Date methods: getDate, getMonth, etc.
Common Checks
- Equal: getTime() === getTime()
- Before: date1 < date2
- After: date1 > date2
- In range: start <= date <= end
Date-Only Comparison
- Ignore time component
- Compare year/month/day only
- Useful for date ranges
Best Practices
- Use getTime() for equality
- Handle timezone issues
- Compare dates only when needed
- Use helper functions