Créer un Chrono avec MySQL PHP
le 09/10/2011 à 17:54
Sarti
J’ai la date suivante de ma base de données $row['dte'] sous la forme 2011-10-09 10:43:29
Comment créer un chrono qui démarre à partir de cette date/heure et afficher par exemple : depuis 5 secondes, 5 minutes ou 5 heures.
Merci à vous.
Tu peux être plus précis dans ton besoin ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 23/10/2011 à 19:53
Sarti
OK, je voudrais créer un chronomètre en PHP pas à partir de maintenant (NOW), mais plutôt à partir d'une heure donnée (heure extraite de ma base de données par exemple).
Qu'est-ce qu'un chronomètre pour toi ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 24/10/2011 à 22:37
Sarti
Un instrument de précision qui sert à mesurer le temps en minutes, secondes et fractions de secondes.
je voudrais savoir en effet comment Tweeter et les autres font pour afficher la durée d'un tweet « depuis 2h 5 min » par exemple, mais avec un décompte des secondes.
Peux-tu m'aider à réaliser cette tâche LupusMic ?
Ah ben voilà, on avance :) Je suis désolé de ne pas venir plus souvent, je suis malheureusement très occupé.
Tout d'abord, « instrument de précision » est une très drôle blague dans le contexte du Web ;)
Les sites qui affichent un temps utilisent des astuces et des approximations.
Allé, un exemple pour t'aider :
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type='application/javascript'>
window.timer = (function()
{
var impl = { } ;
impl.reference = null;
impl.start = function() { impl.reference = new Date };
impl.setReference = function() { impl.reference = arguments[0] } ;
impl.getElapsedTime = function()
{
var now = new Date ;
var elapsed = Math.round((now.getTime() - this.reference.getTime()) / 1000) ;
return { days: 0
, hours: 0
, minutes: 0
, seconds: elapsed
} ;
} ;
var proto = function() {};
proto.prototype = impl;
return proto ;
})();
var init = function()
{
var clock = new timer ;
clock.setReference(new Date) ;
var element = document.getElementById('clock') ;
var fn = function() {
var elapsed = clock.getElapsedTime() ;
element.textContent = elapsed.seconds + ' secondes' ;
setTimeout(fn, 1000);
}
fn();
}
addEventListener('load', init) ;
</script>
</head>
<body>
Depuis <span id='clock'></span>
</body>
</html>
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 30/10/2011 à 14:39
Sarti
Merci, c’est un chrono vraiment magnifique mais seulement l’ennui c’est que je le voulais en PHP.
Maintenant comment lui passer un paramètre pour qu’il démarre selon une date/heure extraite d’une base de données.
Mon chrono ne devrait pas être obligé de démarrer dès l’instant présent, tu vois ce que je veux dire ?
Merci de ton aide.
La classe JS n'est pas terminée, et la fonction init qui est lancée au chargement de la page, est un exemple d'usage de la classe.
Je ne vais quand même pas tout te faire :p
La classe part du principe suivant : la fonction setReference permet de définir la date de départ du comptage (ceci peut ne pas être maintenant, mais une autre date). La fonction getElapsedTime retourne le temps passé depuis la référence.
En fait, c'est bien ce que je pensais depuis le départ : tu ne veux pas un chronomètre :p
Côté PHP, ce que tu feras ne sera pas fondamentalement différent de ce que je t'ai montré avec cette démo en JS. Découpe le problème en sections plus simples, et traite un problème après l'autre.
Le plus gros problème sera la détermination des écarts de temps, le fameux elapsed time. Si tu regarde ma démo, tu constatera que je ne retourne la différence qu'en terme de secondes écoulées. Parce que le choix du retour de l'écart en terme d'heures peut demander des choix à justifier. Du genre : est-ce que je prends en compte les changement d'heure ? :D
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: