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 :

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>");
}
$end correspond au temps en timestamps que j'ai dans la base de donnée ,

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 :

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>");
}
?>
cordialement