- implode: documentation ( source)
<?php
$startDate = '2001-04-20';
$endDate = '2015-11-29';
$diff = (new DateTime($startDate))->diff(new DateTime($endDate));
$lookup = [
'y' => 'Year',
'm' => 'Month',
'd' => 'Day',
];
$elements = [];
foreach ($lookup as $property => $word) {
if ($diff->$property) {
$elements[] = "{$diff->$property} $word" . ($diff->$property !== 1 ? 's' : '');
}
}
echo implode(' : ', $elements);