Returns the difference between two DateTime objects

DateTimeInterface
DateTime::format
DateTimeInterface
PHP Manual

# DateTime::diff

# DateTimeImmutable::diff

# DateTimeInterface::diff

# date_diff

(PHP 5 >= 5.3.0, PHP 7)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Returns the difference between two DateTime objects

### Description

Object oriented style

public DateInterval DateTime::diff ( DateTimeInterface `$datetime2` [, bool `$absolute` = false ] )
public DateInterval DateTimeImmutable::diff ( DateTimeInterface `$datetime2` [, bool `$absolute` = false ] )
public DateInterval DateTimeInterface::diff ( DateTimeInterface `$datetime2` [, bool `$absolute` = false ] )

Procedural style

DateInterval date_diff ( DateTimeInterface `$datetime1` , DateTimeInterface `$datetime2` [, bool `$absolute` = false ] )

Returns the difference between two DateTimeInterface objects.

### Parameters

`datetime`

  The date to compare to.

`absolute`

  Should the interval be forced to be positive?

### Return Values

The DateInterval object representing the difference between the two dates or `FALSE` on failure.

### Examples

Example #1 DateTime::diff() example

Object oriented style

`<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>`

Procedural style

`<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>`

The above examples will output:

    +2 days

Example #2 DateTime object comparison

> Note:

> As of PHP 5.2.2, DateTime objects can be compared using comparison operators.

`<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>`

The above example will output:

    bool(false)
    bool(true)
    bool(false)

### See Also

- DateInterval::format() - Formats the interval
- DateTime::add() - Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
- DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object

DateTimeInterface
DateTime::format
DateTimeInterface
PHP Manual