The first date as a Date object or timestamp (number)
The second date as a Date object or timestamp (number)
Optional
opts: { unit?: TimeUnit }Optional configuration object
Optional
unit?: TimeUnitThe unit of comparison (year, month, day, hour, minute, second, millisecond). Defaults to "millisecond"
True if date a
is before date b
, false otherwise or if either date is invalid
// Basic comparison (millisecond precision)
const result = isBefore(new Date(2025, 0, 1), new Date(2025, 0, 2));
// Returns: true
// Compare at year granularity
const result2 = isBefore(
new Date(2024, 11, 31),
new Date(2025, 0, 1),
{ unit: "year" }
);
// Returns: true
// Works with timestamps
const result3 = isBefore(Date.now() - 1000, Date.now());
// Returns: true (1 second ago is before current time)
// Equality returns false (not strictly before)
const date = new Date(2025, 0, 1);
const result4 = isBefore(date, date);
// Returns: false
// Invalid dates return false
const result5 = isBefore(new Date("invalid"), new Date(2025, 0, 1));
// Returns: false
Check if the first date is strictly before the second date.
This function compares two dates and returns true if the first date is chronologically before the second date. The comparison can be performed at different granularities (year, month, day, hour, minute, second, or millisecond).