Fonction time() - PHP
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir,
Je voudrais comparer deux dates qui sont enregistrées avec la fonction time() sauf j'ai toujours 1h de décalage. Ceci ne vient pas du fuseau horaire.
Par exemple : à 20h40, j'enregistre la première date. J'enregistre l'autre à 20h45. Donc normalement il y a 5 minutes, sauf il va me dit qu'il y a 1h05.
Mais ce qui est étrange, c'est que si je fais ma deuxième date - la première, il va bien m'afficher 300secondes. Et le plus étrange, c'est que sur un autre site, cela marche parfaitement.
Mon code :
Cordialement,
Je voudrais comparer deux dates qui sont enregistrées avec la fonction time() sauf j'ai toujours 1h de décalage. Ceci ne vient pas du fuseau horaire.
Par exemple : à 20h40, j'enregistre la première date. J'enregistre l'autre à 20h45. Donc normalement il y a 5 minutes, sauf il va me dit qu'il y a 1h05.
Mais ce qui est étrange, c'est que si je fais ma deuxième date - la première, il va bien m'afficher 300secondes. Et le plus étrange, c'est que sur un autre site, cela marche parfaitement.
Mon code :
<?php $sql= mysql_query('SELECT date_vote01 FROM membres where playerpseudo="'.$_SESSION['playersession'].'"'); $tabl = mysql_fetch_array($sql); $date_vote01 = $tabl['date_vote01']; $date = $date_vote01; $now = time(); $total = $now - $date; if ($now - $date > 86400) { //+ de 24h echo 'mon texte'; } else { //- de 24h echo '<span style="color:red">'; echo date("H:i:s",$total); echo '</span>'; } ?>
Cordialement,
A voir également:
- Fonction time() - PHP
- Popcorn time - Télécharger - TV & Vidéo
- Finish time lite - Télécharger - Utilitaires
- Quick time - Télécharger - Lecture
- Salat time - Télécharger - Agendas & Calendriers
- Face time - Guide
2 réponses
Bonsoir
D'où vient ton champ date_vote01 ? De la fonction time() de PHP ou de la fonction NOW() de mySQL ?
PHP et Mysql ont chacun leur propre système de date, avec des paramètres pour la prise en compte des fuseaux horaires et des heures d'hiver / d'été. Ces paramètres peuvent varier d'un serveur à l'autre.
Voilà pour l'explication (du moins une explication possible), pour le remède il faut avoir le détail du code, mais il suffit probablement d'une petite modification pour le rendre cohérent : soit n'utiliser que la fonction NOW() de mysql, soit n'utiliser que time() de PHP, mais ne pas mélanger les deux.
D'où vient ton champ date_vote01 ? De la fonction time() de PHP ou de la fonction NOW() de mySQL ?
PHP et Mysql ont chacun leur propre système de date, avec des paramètres pour la prise en compte des fuseaux horaires et des heures d'hiver / d'été. Ces paramètres peuvent varier d'un serveur à l'autre.
Voilà pour l'explication (du moins une explication possible), pour le remède il faut avoir le détail du code, mais il suffit probablement d'une petite modification pour le rendre cohérent : soit n'utiliser que la fonction NOW() de mysql, soit n'utiliser que time() de PHP, mais ne pas mélanger les deux.
Alors deux questions :
Comment enregistres-tu ta première date (requête) ?
Comment fais-tu ce calcul qui te donne une différence de 1h05 ? Je refuse de croire qu'en PHP une soustraction faite dans un sens donne 1h05 et dans l'autre 300s. Il s'agit de calculs différents.
Comment enregistres-tu ta première date (requête) ?
Comment fais-tu ce calcul qui te donne une différence de 1h05 ? Je refuse de croire qu'en PHP une soustraction faite dans un sens donne 1h05 et dans l'autre 300s. Il s'agit de calculs différents.
C'est parfaitement normal d'avoir 300 s, pour 20h45 - 20h40.
Quel est le calcul qui te donne 1 h 05 ?
C'est le echo date("H:i:s",$total); ?
Si c'est ça, rien de choquant : cette fonction n'est pas destinée à convertir des secondes en heures/minutes/secondes. Elle sert à formater un timestamp et ta différence heure2 - heure1 N'EST PAS un timestamp.
Quel est le calcul qui te donne 1 h 05 ?
C'est le echo date("H:i:s",$total); ?
Si c'est ça, rien de choquant : cette fonction n'est pas destinée à convertir des secondes en heures/minutes/secondes. Elle sert à formater un timestamp et ta différence heure2 - heure1 N'EST PAS un timestamp.
le champ date_vote01 est rempli avec la fonction time().
Cordialement,