DIFFÉRENCE ENTRE DEUX DATES ET HEURES CALCULÉ EN SECONDES/MINUTES ETC...

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 23 sept. 2010 à 00:49
 mike - 6 août 2016 à 18:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52313-difference-entre-deux-dates-et-heures-calcule-en-secondes-minutes-etc

La plus efficace :)

function time_to_str($seconds,$precision=1){
$units=array('an'=>31556926,'mois'=>2629743,'semaine'=>604800,'jour'=>86400,'heure'=>3600,'minute'=>60,'seconde'=>1);foreach($units as $a=>$b){if($b<=$seconds){$n=intval($seconds/$b);$c[]=$n.' '.$a.($n>1?'s':'');$seconds-=$n*$b;}}return is_array($c)?str_replace('ss','s',implode(' et ',array_slice($c,0,min($precision,2)))):'un instant';
}
houndegnonm Messages postés 12 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 16 mai 2012
30 sept. 2010 à 19:46
très bien expliqué
abdelaziz_info Messages postés 120 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 12 janvier 2017
23 sept. 2010 à 19:43
salut

Simplifier... Oh oui c’est superbe mais on va Peut-être te dire que ce n’est pas ici que tu dois poster ton code.

10/10 pour ton effort

Bon courage.
Mik4do Messages postés 13 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 4 octobre 2012
23 sept. 2010 à 09:19
Ahhh .. oui en effet, je vais tester ce code...
Ma méthode fonctionne également mais si une ligne résume les 20 ... ça allégera le serveur.

Merci Neigedhiver ^^
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
23 sept. 2010 à 00:49
Salut,

C'est bien compliqué...
Je pense qu'il est plus rapide (et plus simple, plus lisible, etc) d'utiliser strtotime() pour convertir une date en secondes. On fait une soustraction, on divise par 60, on a des heures d'écart...
En une ligne, voici comment avoir le nombre de minutes commencées entre deux dates :

$diff = ceil((strtotime($datefin) - strtotime($datedebut))/60);

Pour les heures :

$diff = ceil((strtotime($datefin) - strtotime($datedebut))/3600);
Rejoignez-nous