DATETIMEIMMUTABLE.DIFF(3) 1 DATETIMEIMMUTABLE.DIFF(3)DateTime::diff - Returns the difference between two DateTime objects
Object oriented style
SYNOPSIS
public DateInterval DateTime::diff (DateTimeInterface $datetime2, [bool $absolute = false])
DESCRIPTION
DateInterval DateTimeImmutable::diff (DateTimeInterface $datetime2, [bool $absolute = false]) DateInterval DateTimeInterface::diff (Date-
TimeInterface $datetime2, [bool $absolute = false])
Procedural style
DateInterval date_diff (DateTimeInterface $datetime1, DateTimeInterface $datetime2, [bool $absolute = false])
Returns the difference between two DateTimeInterface objects.
PARAMETERS
o $datetime
- The date to compare to.
o $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
DateTimeImmutable.diff(3) 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(3), DateTime.add(3), DateTime.sub(3).
PHP Documentation Group DATETIMEIMMUTABLE.DIFF(3)
Check Out this Related Man Page
DATEPERIOD.__CONSTRUCT(3) 1 DATEPERIOD.__CONSTRUCT(3)DatePeriod::__construct - Creates a new DatePeriod object
SYNOPSIS
public DatePeriod::__construct (DateTimeInterface $start, DateInterval $interval, int $recurrences, [int $options])
DESCRIPTION
DatePeriod::__construct (DateTimeInterface $start, DateInterval $interval, DateTimeInterface $end, [int $options]) DatePeriod::__con-
struct (string $isostr, [int $options])
Creates a new DatePeriod object.
PARAMETERS
o $start
- The start date of the period.
o $interval
- The interval between recurrences within the period.
o $recurrences
- The number of recurrences.
o $end
- The end date of the period.
o $isostr
- An ISO 8601 repeating interval specification.
o $options
- Can be set to DatePeriod::EXCLUDE_START_DATE to exclude the start date from the set of recurring dates within the period.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.5.8 | |
| | |
| | $end type changed to DateTimeImmutable. Previ- |
| | ously, DateTime. |
| | |
| 5.5.0 | |
| | |
| | $start type changed to DateTimeImmutable. Previ- |
| | ously, DateTime. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
DatePeriod example
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// All of these periods are equivalent.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."
";
}
?>
The above example will output:
2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29
Example #2
DatePeriod example with DatePeriod::EXCLUDE_START_DATE
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
DatePeriod::EXCLUDE_START_DATE);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
// Note that, in this case, 2012-07-01 is not printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."
";
}
?>
The above example will output:
2012-07-08
2012-07-15
2012-07-22
2012-07-29
PHP Documentation Group DATEPERIOD.__CONSTRUCT(3)