[RESOLU] DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

Re: DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

par stephweb » 13 août 2019, 15:00

Merci à tous pour vos réponses.
format ta date avec %a tu aura le nombre totale de jour que tu peux transformer en minutes ensuite pour les heures et les minutes tu as dèjà compris comment faire.
Merci !

Ce qui donne ça :

Code : Tout sélectionner

/** * Retourner nombre d'heures d'intervale entre 2 dates */ public static function getHoursIntervalBetweenTwoDates(string $start, string $end): int { $dateStart = new DateTime($start); $dateEnd = new DateTime($end); $interval = $dateStart->diff($dateEnd); $hours = $interval->format('%a') * 24; $hours += $interval->format('%h'); return $hours; } /** * Retourner nombre de minutes d'intervale entre 2 dates */ public static function getMinutesIntervalBetweenTwoDates(string $start, string $end): int { $dateStart = new DateTime($start); $dateEnd = new DateTime($end); $interval = $dateStart->diff($dateEnd); $minutes = $interval->format('%a') * 24 * 60; $minutes += $interval->format('%h') * 60; $minutes += $interval->format('%i'); return $minutes; }
Et ça marche.

Au lieu de faire ceci : $interval->format('%a')
On peut aussi faire ceci (sauf que la ça nous retourne un int au lieu d'un string) : $interval->days

Sujet résolu, merci.

Re: DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

par or 1 » 13 août 2019, 14:58

oups

Re: DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

par Spols » 13 août 2019, 14:47

c'est bien la fonction qu'il utilise,

format ta date avec %a tu aura le nombre totale de jour que tu peux transformer en minutes ensuite pour les heures et les minutes tu as dèjà compris comment faire.

Re: DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

par or 1 » 13 août 2019, 14:11

DateInterval - Calculer nombre de minutes d’intervalle entre 2 DateTime

par stephweb » 13 août 2019, 13:42

Bonjour.
Je viens demander de l'aide SVP.
Dans une table de ma BDD, j'ai 2 colonnes de type timestamp : 'date_start' et 'date_end'.
Je souhaite calculer le nombre de minutes exact d'intervalle entre ces 2 dates.

Comment faire ceci précisément SVP ?

Je me suis créé cette function :

Code : Tout sélectionner

<?php public function convertDiffToMinutes($dateStart, $dateEnd): int { $start = new DateTime($dateStart); $end = new DateTime($dateEnd); $interval = $start->diff($end); $yMin = $interval->format("%y") * 525600; // convertir années en minutes $mMin = $interval->format("%m") * 1440 * 31; // convertir mois (en 31 jours) en minutes $dMin = $interval->format("%d") * 1440; // convertir jours en minutes $hMin = $interval->format("%h") * 60; // convertir heures en minutes $iMin = $interval->format("%i"); return $yMin + $mMin + $dMin + $hMin + $iMin; }
Mais le problème est surtout de convertir les mois d'intervalle en minutes d'intervalle, vu qu'on ne peut pas savoir à l'avance si les mois enregistrés dans BDD seront un mois à 28 ou à 31 jours...
Et les valeurs enregistrés dans 'date_start' et 'date_end' peuvent avoir un mois différent l'une de l'autre, une année différente l'une de l'autre...

Avez-vous une solution propre à me conseiller SVP ?

Merci beaucoup.