Amélioration date en temps réelle

Fermé
arthur - 28 févr. 2014 à 21:08
 arthur - 1 mars 2014 à 13:31
Bonjour,

j'ai trouvé ce code qui me plais bien,

mais moi j'aimerais utiliser pour mes message poster c'est a dire

quand un membre poste un mssage

ca se mettra

il y a 0 seconde a partir de maintenant
ensuite

il 10 secondes

il y a 1 munites et 15 seconde

il y a 1 h 01 minutes et 10 seconde

il y a 1 jours et 1 h et 10 minutes et 10 secondes

etc.....

comment mettre tout ces phrase dans ce code


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
</head>
<script>

// Initialise la fonction rafraichir qui a pour but de rafraichier la date toutes les secondes
function rafraichir()
{
// On initialise la variable text dans laquelle on affichera la date
var text = '';
 
// On initialise la fonction date qui nous servira a afficher les caractéristiques de la date (jour, mois, heure ...)
var date = new Date();
 
/* Fonction ' JOUR SEMAINE ' */
// Le jour de la semaine sera affiché de la façon : Lundi.
var jour_actuel = date.getDay();
var chaine_jour = Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi',
 'Samedi');
  var jour_semaine = chaine_jour[jour_actuel];
 
/* Fonction ' JOUR ' */
// Le jour sera affiché de façon 20.
// Pour les jours de 1 a 9, on affichera donc un '0' devant.
if ( date.getDate() <= 9 )
 {
  var jour = '0'+date.getDate();
 }
else
 {
  var jour = date.getDate();
 }
 
/* Fonction ' MOIS ' */
var mois_actuel = date.getMonth();
var chaine_mois = Array('janvier', 'février', 'mars', 'avril', 'mai',
 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre',
 'décembre');
  var mois = chaine_mois[mois_actuel];
 
 
/* Fonction ' HEURES ' */
if ( date.getHours() <= 9 )
 {
  var heure = '0'+date.getHours();
 }
else
 {
  var heure = date.getHours();
 }
 
/* Fonction ' MINUTES ' */
if ( date.getMinutes() <= 9 )
 {
  var minutes = '0'+date.getMinutes();
 }
else
 {
  var minutes = date.getMinutes();
 }
 
/* Fonction ' SECONDES ' */
if ( date.getSeconds() <= 9 )
 {
  var secondes = '0'+date.getSeconds();
 }
else
 {
  var secondes = date.getSeconds();
 }
 
// On prépare l'affichage de la date et de l'heure
text +=  jour_semaine+' '+jour+' '+mois+' '+date.getFullYear();
text += '<br />';
text +=  heure+':'+minutes+':'+secondes;
 
// On indique que cette date sera affichée dans une balise dont l'"id" est "affichage_date"
document.getElementById('affichage_date').innerHTML = text;
}
// On écrit la balise dons l'id est "affichage_date"
// On peut aussi choisir une autre balise HTML !
document.write('<span id="affichage_date"></span>');
 
// Enfin, on rafraichi la fonction "rafraichir" toutes les secondes.
setInterval('rafraichir()',1000);
 
/* -- -- -- FIN -- -- -- */
</script>	
	    <script src="date.js" type="text/javascript"></script>
		<noscript>
			<p>
				 javascript non pris en charge
			</p>
		</noscript>
		
		
		<div id="affichage_date"></div>
		
        <p>
            <a href="http://validator.w3.org/check?uri=referer">
			    <img src="http://www.w3.org/Icons/valid-xhtml10"
                 alt="Valid XHTML 1.0 Strict" height="31" width="88"/>
	        </a>
	        <a href="http://jigsaw.w3.org/css-validator/check/referer">
                <img style="border:0;width:88px;height:31px"
                 src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
                 alt="CSS Valide !"/>
            </a>
        </p>
    </body>
</html> 




merci de votre aide

2 réponses

Salut,

dans votre base de données vous devez avoir la date avec les heures minutes secondes(le mieux est un timestamp unix) et lors de vos requêtes SQL vous faites simplement le calcul entre la date actuelle et l'envoi du message.

"j'ai trouvé ce code qui me plais bien,"

En Javascript vous ne pouvez pas avoir d'échanges avec le serveur de bases de données, tout ce que vous pourrez faire c'est d'afficher l'heure. D'ailleurs il et très bien commenté votre script:

// On prépare l'affichage de la date et de l'heure

<!--// On indique que cette date sera affichée dans une balise dont l'"id" est "affichage_date" -->

// On écrit la balise dons l'id est "affichage_date"

// On peut aussi choisir une autre balise HTML !

// Enfin, on rafraichi la fonction "rafraichir" toutes les secondes.


Est que par hasard vous ne savez pas lire, le javascript c'est une simple horloge...


Si vous avez des messages ceux ci doivent être enregistrés quelque part.
Faites quelque recherche sur les Systèmes d'informations(SI), les SGBD ainsi que l'architecture 3 tiers ça vous donnerait une idée de ce que vous devez apprendre à faire pour ça... mais déjà si vous avez du mal à lire les commentaires d'un petit javascript tout simple c'est pas gagné...
0
merci en faite j'ai déja fait une fonction date

<?php
// ici c'est pour les fonction de date pour membre_inscrit et dernier visite
function format_temps( $tps ) {
        $difference = time() - $tps;
        $heure_defaut = 3;
        $txt = '';
 
        if (++$difference < 0) return 'erreur sur la date';  //si la date qu'on indique est dans le futur, cas improbable dans notre cas
        else {
        
                if(date('dmY') == date('dmY', $tps) or $difference < $heure_defaut*3600)
                        //Si c'est il y a moins de 3 heures
                if( $difference < $heure_defaut*3600 )
                        {
                                $txt .= 'Il y a ';
                                if ($difference >= 3600)
                                        $txt .= (int)($difference/3600)."h ";
                                if ($difference >= 60)
                                        $txt .= strftime(" %Mm",$difference);
                                $txt .= strftime(' %Ss',$difference);
        
                        }
                        //Si c'est il y a plus de trois heures
                        else
                                $txt .= 'Aujourd\'hui ';
                
                //Si c'est hier
                else if((date('d') - 1) == date('d', $tps) and date('mY') == date('mY', $tps))
                $txt .= 'Hier ';
                //Si c'est une autre date
                else
                        $txt .= date('\l\e d/m/Y', $tps) ;
        
                //Puis affichage de l'heure si on est à plus de 3 heures
                if( $difference >= $heure_defaut*3600 )
                        $txt .=  ' à ' . date('H \h i\m s\s', $tps).'';
        
        
                return $txt;
        }
}
 
?>


moi j'aimerais ce code transformer en temps réel

avec des phrase

echo ' il y a 00 seconde des maintenants

etc...

si vous pouvez m'aidé
0