Comment convertir une date passée en un délai en PHP ?
Réponses rédigées par Antoine
Dernière mise à jour : 2020-03-08 23:12:06
Question
Je cherche à convertir une date passée, qui est au format datetime MySQL (2019-30-01 00:22:35), en un délai, par exemple il y a 35 jours 45 minutes et 20 secondes.
Réponse
Pour convertir une date au format datetime
, en un délai passé, en PHP, vous pouvez créer une fonction qui calcule la différence entre deux dates, puis l'exprime en nombre d'années, mois, jours, heures etc.
<?php
function delai($date)
{
$maintenant = new DateTime;
$delai = new DateTime($date);
$diff = $maintenant->diff($delai);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'an',
'm' => 'mois',
'w' => 'semaine',
'd' => 'jour',
'h' => 'heure',
'i' => 'minute',
's' => 'seconde',
);
foreach ($string as $cle => $data)
{
if ($diff->$cle)
{
$data = $diff->$cle . ' ' . $data . ((($diff->$cle > 1) && ($cle !='m')) ? 's' : '');
echo $data." ";
}
else
{
unset($string[$cle]);
}
}
}
delai('2018-08-01 00:10:44');
?>