PHP date_diff() Function
Quick summary: The PHP date_diff() function calculates the difference between two DateTime objects.
PHP date_diff() Syntax
date_diff(DateTimeInterface $base, DateTimeInterface $target, bool $absolute = false): DateInterval
PHP
PHP date_diff() Basic examples
$a = date_create('2026-02-01');
$b = date_create('2026-02-08');
$diff = date_diff($a, $b);
var_dump($diff->days);
PHP
Output:
int(7)
Calculates the number of days between dates.
PHP date_diff() Real-world usage
$start = date_create('now');
$end = date_create('+1 week');
$diff = date_diff($start, $end);
echo $diff->format('%a days');
PHP
Output:
7 days
Measures time intervals.
PHP date_diff() Edge cases
$a = date_create('2026-02-08');
$b = date_create('2026-02-01');
$diff = date_diff($a, $b);
var_dump($diff->invert);
PHP
Output:
int(1)
invert indicates a negative interval.
PHP date_diff() Common mistakes
Assuming date_diff returns absolute values
Intervals can be inverted.
Incorrect
date_diff($a, $b)->days;
Correct
abs(date_diff($a, $b)->days);
Use abs() if direction does not matter.
PHP date_diff() Frequently Asked Questions
What does date_diff() do?
Calculates difference between two DateTime objects.
Return type?
DateInterval object.
Use case?
Date comparisons.
Common mistake?
Passing strings instead of objects.
Can return negative?
Yes.
Performance?
Fast.
Alternative?
Manual timestamp diff.
Supports days/months?
Yes.
Timezone aware?
Yes.
Safe?
Yes.
Best practice?
Use DateTime consistently.
Used in age calculation?
Yes.