Post by Denis BitouzéBonjour,
dans un formulaire, je récupère un horaire (de début d'événement) et une
HH:MM
et j'ai eu beau farfouiller dans des tas de sites et forums, procéder
à des tas de tests, je n'ai pas trouvé moyen d'ajouter l'un à l'autre
pour obtenir l'horaire de fin d'événement.
Merci d'avance pour tout conseil...
Bonjour,
En effet en cherchant brièvement je n'ai pas trouvé de fonction native
permettant de faire ça.
Mais c'est pas très grave :
<?php
function horaire_fin($horaire_debut, $duree)
{
// $horaire_debut et $duree au format 'HH:MM'
list($heures_debut, $minutes_debut) = sscanf($horaire_debut, "%d:%d");
list($heures_duree, $minutes_duree) = sscanf($duree, "%d:%d");
$heures_fin = $heures_debut + $heures_duree + floor(($minutes_debut +
$minutes_duree)/60);
$minutes_fin = ($minutes_debut + $minutes_duree)%60;
if($heures_fin < 10) $heures_fin = "0$heures_fin";
if($minutes_fin < 10) $minutes_fin = "0$minutes_fin";
return "$heures_fin:$minutes_fin";
}
$horaire_debut = '13:45';
$duree = '02:16';
echo horaire_fin($horaire_debut, $duree);
?>
Ça devrait le faire :)
Sinon tu peux aussi utiliser les timestamp, peut être plus concis et
plus propre :
<?php
function horaire_fin2($horaire_debut, $duree)
{
// $horaire_debut et $duree au format 'HH:MM'
list($heures_debut, $minutes_debut) = sscanf($horaire_debut, "%d:%d");
list($heures_duree, $minutes_duree) = sscanf($duree, "%d:%d");
$time_debut = mktime($heures_debut, $minutes_debut);
$time_fin = $time_debut + 60*60*$heures_duree + 60*$minutes_duree;
return date('H:i', $time_fin);
}
$horaire_debut = '13:45';
$duree = '02:16';
echo horaire_fin2($horaire_debut, $duree);
?>