Bonjour, je vous écris ce jour, car j'ai un script de calculé le temps écoulé entres deux dates mais je le trouve pas assez exploitable :
$end correspond au temps en timestamps que j'ai dans la base de donnée ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <? function rel_time($from, $to = null){ $to = (($to === null) ? (time()) : ($to)); $to = ((is_int($to)) ? ($to) : (strtotime($to))); $from = ((is_int($from)) ? ($from) : (strtotime($from))); $units = array( "année" => 31556926, "mois" => 2629744, "semaine" => 604800, "jour" => 86400, "heure" => 3600, "minute" => 60, "seconde" => 1, ); $diff = abs($from - $to); setlocale(LC_TIME, "fr_FR"); $variz=strftime("%A %d %B %Y",$from); $suffix = (($from > $to) ? ("from now") : ("")); foreach($units as $unit => $mult) if($diff >= $mult){ $and = (($mult != 1) ? ("") : ("et ")); $output .= ", ".$and.intval($diff / $mult)." ".$unit.((intval($diff / $mult) == 1) ? ("") : ("s")); $diff -= intval($diff / $mult) * $mult; } $output .= " ".$suffix; $output = substr($output, strlen(", ")); return str_replace('moiss','mois',$output); } $date_ecoule = date('m/d/Y H:i:s', $end); echo rel_time($date_ecoule); if($end == $start) { echo("<b>Connecté(e)</b>"); }
Ce que je souhaiterais c'est le même genre de script mais qu'on peut exploité, qu'on puisse changé le texte. Au lieu de "Il y a 2 heures 48 minutes et 23 secondes" mettre juste "il y a 2h48 "
J'avais déjà un script tu genres, mais pour calculé les mois et année je n'y arrive pas :
cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php $jour1= date("d-m-y",$end); $jour2= date("d-m-y",time()); //Définition des date au format jour-mois-année $date1 = "$jour1"; $date2 = "$jour2"; //Extraction des données list($jour1, $mois1, $annee1) = explode('-', $date1); list($jour2, $mois2, $annee2) = explode('-', $date2); //Calcul des timestamp $timestamp1 = mktime(0,0,0,$mois1,$jour1,$annee1); $timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2); $jour= abs($timestamp2 - $timestamp1)/86400; //Affichage du nombre de jour : 27 $time1= date("H:i:s",$end); $time2= date("H:i:s",time()); //Définition des heures $heure1 = "$time1"; $heure2 = "$time2"; //Extractions des différents paramètres list($h1, $m1, $sec1) = explode(':', $heure1); list($h2, $m2, $sec2) = explode(':', $heure2); //Calcul des timestamps $timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006); $timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006); $timestamp = abs($timestamp2 - $timestamp1); $diff_heure = floor($timestamp / 3600); //Calcul des heures écoulées/restantes $timestamp = $timestamp - ($diff_heure * 3600); $diff_min = floor($timestamp / 60); //Calcul des minutes écoulées/restantes //Si il n'y a pas encore de membres qui sont passes aujourd'hui // on enchaîne les contrôles ci-dessous ---- if ($jour>= 1) { echo ("$jour jours $diff_heure heures et $diff_min minutes"); } elseif ($diff_heure>=1) { echo ("$diff_heure heures $diff_min minutes"); } elseif ($diff_min>=1) { echo ("$diff_min minutes"); } elseif ($diff_min<1 && $diff_heure<1){ echo ("<b>==> En Ligne <==</b>"); } ?>
Partager