PHP: DateTime Examples

August 18, 2017
Get the difference, in days, between two dates

$datetime1 = new DateTime('08/20/2016');
$datetime2 = new DateTime('08/25/2016');
$interval = $datetime1->diff($datetime2);

$dateDiff = $interval->format('%a');

OR

$dateDiff = $interval->days;

Check if a date is older than 30 days

$datetime1 = new DateTime('09/02/2017'); // date to check
$datetime2 = new DateTime(); // now
$interval = $datetime1->diff($datetime2);
$dateDiff = $interval->format('%r%a'); // %r returns the sign; if date is in the past, returns a positive number

if ($dateDiff > 30) {
	echo "Date older than 30 days\n";
}

Check if a date is older than 30 days (alt)

$datetime1 = new DateTime('09/02/2017'); // date to check
$datetime2 = new DateTime(); // now

if ($datetime1->diff($datetime2)->format('%r%a') > 30) {
	echo "Date older than 30 days\n";
}

Get date in the past:
Example: The date 2 weeks ago

$now = new DateTime;
$interval = new DateInterval('P2W');
$two_weeks_ago = $now->sub($interval);

echo $two_weeks_ago->format('Y-m-d H:i:s');

Get date in the future
Example: The date in 2 weeks

$now = new DateTime;
$interval = new DateInterval('P2W');
$date_in_two_weeks = $now->add($interval);

echo $date_in_two_weeks->format('Y-m-d H:i:s');


Related Links on the PHP Manual pages:

PHP: DateTime
PHP: DateInterval