J'ai besoin de soustraire 45 minutes de la variable date-heure en PHP.
Le code:
$thestime = '2012-07-27 20:40';
$datetime_from = date("Y-m-d h:i",strtotime("-45 minutes",strtotime($thestime)));
echo $datetime_from;
renvoie le résultat 2012-07-27 07:55
.
Ça devrait être 2012-07-27 19:55
, bien que. Comment puis-je réparer ça?
Tu devrais faire:
$datetime_from = date("Y-m-d H:i", strtotime("-45 minutes", strtotime($thestime)));
Avoir H
au lieu de h
signifie qu'un format de 24 heures est utilisé, représentant l'heure avec des zéros en tête: 00
à travers 23
.
Vous pouvez en savoir plus à ce sujet dans la documentation de la fonction de date PHP .
Il existe également des façons orientées objet de le faire qui sont plus fluides, comme DateTime::sub
:
$datetime_from = (new DateTime($thestime))->sub(DateInterval::createFromDateString('45 minutes'))->format('Y-m-d H:i')
Ou la manière encore plus expressive offerte par la bibliothèque Carbon
qui étend la classe DateTime
intégrée de PHP:
$datetime_from = (new Carbon($thestime))->subMinutes(45)->format('Y-m-d H:i');