Anonymus
lundi 10 mai 2004 à 11:50
C'est clair. Le problème, c'est que tu ne stockes pas les dates sous le meme format. Tu aurais du choisir un seul format pour toutes les dates de ta base de données, et faire les 'changements dans le script. Il t'aurait été plus facile, ensuite, de faire les manipulations adhéquates.
Pour ton problème : Le plus simple est que tu retrouves donc les timestamp respectifs. Pour cela, on commence par la date de connection :
CODE
echo "<br>date de connection : ".$date;
echo"<br>transformation en 'mois','jour','année'";
$year_first_date = substr($date,0,4);
$month_first_date = substr($date,5,2);
$day_first_date = substr($date,8,2);
echo"<br> timestamp correspondant : ".mktime(0,0,0,$month_first_date,$day_first_date,$year_first_date );
On passe à l'autre valeur, $datetime, auquel on commence par enlever les 'heure','minute','seconde' :
CODE
$datetime = strftime("%Y-%m-%d %H:%M:%S");
echo"<br> récupération de la chaine, sans les heure, minute, seconde: ".substr($datetime,0,10);
puis on recommence la transformation ci dessus, pour trouver le timestamp, correspondant au format de la chaine :
CODE
$year_first_datetime = substr($date,0,4);
$month_first_datetime = substr($date,5,2);
$day_first_datetime = substr($date,8,2);
echo"<br> timestamp correspondant : ".mktime(0,0,0,$month_first_datetime,$day_first_datetime,$year_first_datetime );
A partir de là, tu peux, sans problèmes, comparer les 2 valeurs, qui sont exprimées en secondes. Le timestamp est, rappelons le, le nombre de secondes passées depuis le 1er janvier 1970.
Pour comparer, il faut evidement transformer les données en seconde. Donc :
date_max = date_connection+86400 (soit : 24 heures, en secondes)
si date_max< date_dernier_clic,
alors ... cela fait plus de 24 heures que la personne est connectée.
Anonymus.