J'ai une heure à laquelle je veux ajouter une heure :
$time = '10:09';
J'ai essayé :
$time = strtotime('+1 hour');
strtotime('+1 hour', $time);
$time = date('H:i', strtotime('+1 hour'));
Mais aucune des solutions ci-dessus ne fonctionne.
J'ai une heure à laquelle je veux ajouter une heure :
$time = '10:09';
J'ai essayé :
$time = strtotime('+1 hour');
strtotime('+1 hour', $time);
$time = date('H:i', strtotime('+1 hour'));
Mais aucune des solutions ci-dessus ne fonctionne.
Ça a marché pour moi.
$timestamp = strtotime('10:09') + 60*60;
$time = date('H:i', $timestamp);
echo $time;//11:09
Explication :
strtotime('10:09')
crée un horodatage numérique en secondes, quelque chose comme 1510450372
. Il suffit d'ajouter ou de retirer la quantité de secondes dont vous avez besoin et d'utiliser date()
pour le reconvertir dans un format lisible par l'homme.
$timestamp = strtotime('10:09') + 60*60; // 10:09 + 1 hour
$timestamp = strtotime('10:09') + 60*60*2; // 10:09 + 2 hours
$timestamp = strtotime('10:09') - 60*60; // 10:09 - 1 hour
time()
crée également un timestamp numérique mais pour le moment. Vous pouvez l'utiliser de la même manière.
$timestamp = time() + 60*60; // now + 1 hour
$time = '10:09';
$timestamp = strtotime($time);
$timestamp_one_hour_later = $timestamp + 3600; // 3600 sec. = 1 hour
// Formats the timestamp to HH:MM => outputs 11:09.
echo strftime('%H:%M', $timestamp_one_hour_later);
// As crolpa suggested, you can also do
// echo date('H:i', $timestamp_one_hour_later);
Consultez le manuel PHP pour strtotime() , strftime() y date() pour les détails.
BTW, dans votre code initial, vous devez ajouter des guillemets, sinon vous obtiendrez des erreurs de syntaxe PHP :
$time = 10:09; // wrong syntax
$time = '10:09'; // syntax OK
$time = date(H:i, strtotime('+1 hour')); // wrong syntax
$time = date('H:i', strtotime('+1 hour')); // syntax OK
C'est bizarre que personne n'ait suggéré la méthode OOP :
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT3600S'));//add 3600s / 1 hour
OU
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT60M'));//add 60 min / 1 hour
OU
$date = new \DateTime(); //now
$date->add(new \DateInterval('PT1H'));//add 1 hour
Extrayez-le dans une chaîne de caractères au format :
var_dump($date->format('Y-m-d H:i:s'));
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.