Calcul date de fin avec une date de début et d'une durée

Delphine -  
Neohammer Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Pour un projet, j'ai besoin de calculer une date de fin à partir de la date de début et d'une durée.
Le format de la date de début est datetime et la durée (hh:mm) est en time. Mais je ne trouve pas comment additionner les deux pour avoir la date de fin.
J'ai essayé avec idate :
idate('yyyy-MM-dd HH:mm:ss', strtotime($_POST['dateDebut'])+strtotime($_POST['duree'])) )
Mais visiblement y'a quelque chose qui ne fonctionne pas (" Warning: idate(): idate format is one char")
J'ai aussi essayé avec date et timestamp :
date('yyyy-MM-dd HH:mm:ss', date_timestamp_get($_POST['dateDebut'])+date_timestamp_get($_POST['duree']))

Je ne trouve pas la solution, quelqu'un pourrait m'aider?
A voir également:

4 réponses

B2D2
 
Voilà un bout de code que j'utilise, pas forcément très élégant, mais qui fonctionne :
$dateFin = date("Y-m-d H:i:s",mktime(date("H"),date("i")+240,date("s"),date("m"),date("d"),date("Y")))


Cela incrémente la date du jour de 240 minutes (normalement le 240 est une variable, qui contient un nombre de minutes).

Depuis j'ai appris qu'on pouvait faire plus élégant en utilisant la classe Date (https://www.php.net/manual/fr/function.date-add) mais j'ai toujours du mal à changer un bout de code qui fonctionne juste pour le plaisir de changer (tant que les fonctions ne sont pas dépréciées !).
0
B2D2
 
Bonjour,
J'utilise ce bout de code qui incrémente la date du jour en minute (valeur renvoyée par ma fonction getParametre('duree_session')) :
$dateFin = date("Y-m-d H:i:s",mktime(date("H"),date("i")+getParametre('duree_session'),date("s"),date("m"),date("d"),date("Y")));


C'est pas le plus élégant, mais ça marche.
0
Neohammer Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Tu peux faire :


$date = date("Y-m-d H:i:s", strtotime("+240 seconds"));


Bonne soirée.
0
Neohammer Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Tu peux aussi faire :



$time_add = 240; // temps à ajouter (s)

$date = date('Y-m-d H:i:s' , strtotime( "+".$time_add." seconds") );



Bonne soirée
0