PHP délai en heures
Résolu/Fermé
jobouille
Messages postés
286
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
27 septembre 2017
-
Modifié par jobouille le 16/04/2015 à 19:50
jobouille Messages postés 286 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 27 septembre 2017 - 17 avril 2015 à 22:42
jobouille Messages postés 286 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 27 septembre 2017 - 17 avril 2015 à 22:42
A voir également:
- PHP délai en heures
- Easy php - Télécharger - Divers Web & Internet
- Délai osd ✓ - Forum Windows XP
- Télécharger 24 heures chrono saison 1 complet en français gratuit - Forum Audio
- Delai paiement le bon coin remise en main propre - Forum Vos droits sur internet
- 35 go internet équivalent en heure - Forum Mobile
2 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
16 avril 2015 à 20:10
16 avril 2015 à 20:10
Bonjour,
Le seul moyen pour toi pour "incrémenter" cette variable temps (et ce... même si l'utilisateur ferme la fenêtre...et y revient plus tard...) c'est de mémoriser ( Soit dans des COOKIES .. soit dans une Base de donnée) la date/heure à laquelle a cliqué l'utilisateur sur ce bouton...
Ainsi.. à chaque connexion sur la page ( ou son rafraichissement..) tu lis cette valeur.. tu la compares à la date de l'instant T .. et tu pourras ainsi connaitre le temps écoulé !
nb : Le souci avec les cookies.. c'est que si l'utilisateur change de PC entre temps.. le cookie n'existera pas sur cette nouvelle machine...
Je te conseilles donc d'utiliser l'insertion en base de données.
Le seul moyen pour toi pour "incrémenter" cette variable temps (et ce... même si l'utilisateur ferme la fenêtre...et y revient plus tard...) c'est de mémoriser ( Soit dans des COOKIES .. soit dans une Base de donnée) la date/heure à laquelle a cliqué l'utilisateur sur ce bouton...
Ainsi.. à chaque connexion sur la page ( ou son rafraichissement..) tu lis cette valeur.. tu la compares à la date de l'instant T .. et tu pourras ainsi connaitre le temps écoulé !
nb : Le souci avec les cookies.. c'est que si l'utilisateur change de PC entre temps.. le cookie n'existera pas sur cette nouvelle machine...
Je te conseilles donc d'utiliser l'insertion en base de données.
jobouille
Messages postés
286
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
27 septembre 2017
10
17 avril 2015 à 18:46
17 avril 2015 à 18:46
Parfait merci beaucoup !
J'aurais cependant une dernière question.
J'ai créer une nouvelle colonne dans ma basse de donnée que j'ai appelée champ1T de type DATETIME.
Il faut donc que la date soit enregistrée au moment où l'utilisateur appui sur le bouton afin de soustraire après etc.
J'ai essayé ceci mais ça ne fonctionne pas :/
Encore merci :)
J'aurais cependant une dernière question.
J'ai créer une nouvelle colonne dans ma basse de donnée que j'ai appelée champ1T de type DATETIME.
Il faut donc que la date soit enregistrée au moment où l'utilisateur appui sur le bouton afin de soustraire après etc.
J'ai essayé ceci mais ça ne fonctionne pas :/
<form method="POST" action=""> <input type="submit" name="test" value="TEST" /> </form> <?php if(isset($_POST['test'])) { $champ1T = $bdd->exec('UPDATE membres SET champ1T = $now WHERE id = '.$_SESSION['id']); echo 'OK'; } $datetime1 = strtotime("2015-04-18 19:00:00"); $now = date('Y-m-d H:i:s'); $datetime2 = strtotime($now); $interval = abs($datetime2 - $datetime1); $hours= round($interval / 3600); echo "Diff = $hours heures "; ?>
Encore merci :)
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié par jordane45 le 17/04/2015 à 21:43
Modifié par jordane45 le 17/04/2015 à 21:43
Dans un premier temps.. il faut que tu acquières quelques bonnes "pratiques"..
1 - On sort la requête de son exécution
2 - Lorsqu'une requête ne semble pas fonctionner... on en fait un ECHO puis on la teste en direct dans sa BDD
3 - On utilises de préférence les doubles-quotes pour encadrer la requête
4 - On utilise les simple-quotes pour entourer les variables DANS les requêtes.
5 - On essaye de placer le maximum de code php AVANT le html....
Maintenant concernant ton code actuel....il y a plusieurs erreurs....
- Tu utilises la variable $now dans la requête.. mais cette variable est déclarée seulement après....
- Tu n'as pas mis les variables entre quotes dans la requête
Bref... cela donne :
1 - On sort la requête de son exécution
2 - Lorsqu'une requête ne semble pas fonctionner... on en fait un ECHO puis on la teste en direct dans sa BDD
3 - On utilises de préférence les doubles-quotes pour encadrer la requête
4 - On utilise les simple-quotes pour entourer les variables DANS les requêtes.
5 - On essaye de placer le maximum de code php AVANT le html....
Maintenant concernant ton code actuel....il y a plusieurs erreurs....
- Tu utilises la variable $now dans la requête.. mais cette variable est déclarée seulement après....
- Tu n'as pas mis les variables entre quotes dans la requête
Bref... cela donne :
<?php $datetime1 = strtotime("2015-04-18 19:00:00"); $now = date('Y-m-d H:i:s'); $datetime2 = strtotime($now); $interval = abs($datetime2 - $datetime1); $hours= round($interval / 3600); $id = isset($_SESSION['id'])?$_SESSION['id']:NULL; if(isset($_POST['test'])){ $sql = "UPDATE membres SET champ1T = '$now' WHERE id = '$id' "; $champ1T = $bdd->exec($sql) or die(print_r($db->errorInfo(), true)); echo " UPDATE - OK"; } echo "Diff = $hours heures "; ?> <form method="POST" action=""> <input type="submit" name="test" value="TEST" /> </form>
jobouille
Messages postés
286
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
27 septembre 2017
10
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
17 avril 2015 à 22:17
17 avril 2015 à 22:17
Ok merci beaucoup, la date a bien été sauvegardée dans la base de donnée.
Cependant pourquoi mettre une date "prédéfinie" dans $datetime1 ?
Car la différence doit être entre la date actuelle ($datetime2) et la date de la base de donnée.
Qu'est ce qui faudrait changer dans cette ligne "$datetime1 = strtotime("2015-04-18 19:00:00");" pour que $datetime1 prennent la valeur de la base de donnée ?
Merci encore de votre aide ! :D
Cependant pourquoi mettre une date "prédéfinie" dans $datetime1 ?
Car la différence doit être entre la date actuelle ($datetime2) et la date de la base de donnée.
Qu'est ce qui faudrait changer dans cette ligne "$datetime1 = strtotime("2015-04-18 19:00:00");" pour que $datetime1 prennent la valeur de la base de donnée ?
Merci encore de votre aide ! :D
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
jobouille
Messages postés
286
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
27 septembre 2017
17 avril 2015 à 22:31
17 avril 2015 à 22:31
Je n'ai pas codé la récupération en bdd.... il faut le faire !
jobouille
Messages postés
286
Date d'inscription
jeudi 11 juin 2009
Statut
Membre
Dernière intervention
27 septembre 2017
10
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
17 avril 2015 à 22:42
17 avril 2015 à 22:42
Oui c'est bon j'ai réussi, c'était pas grand chose :p
Bon ben je vais terminer mon programme et encore merci pour votre aide !
Vous m'avez beaucoup aidé ! :D
Bonne soirée
Bon ben je vais terminer mon programme et encore merci pour votre aide !
Vous m'avez beaucoup aidé ! :D
Bonne soirée
16 avril 2015 à 22:55
Effectivement, je préfère opter pour la base de donnée que pour les cookies.
Cependant, savez-vous comment faire pour savoir le jour/heure/minute au moment où il a appuyer et comparer avec les 72h a attendre ?
Je vous remercie encore de m'aider car je suis conscient que ce que je demande n'est pas forcément très pas facile a faire :/
16 avril 2015 à 23:01
avec $datetime1 à remplacer par la donnée que tu auras stocké en Base de données
et $datetime2 à remplacer par l'heure actuelle (au momment de l'affichage de ta page)