Date et heure sans refresh la page [Résolu]

Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 25 avril 2005 à 13:55 - Dernière réponse :
Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 26 avril 2005 à 19:12
Bonjour,
je n'ai rien trouvé sur le problème d'affichage de Date et Heure qui se met à jour toute les minutes par exemple, mais SANS recharger toute la page...
J'ai testé en PHP, mais j'ai rien de mieux.

<?php
$date = date("d-m-Y");
$heure = date("H:i");
Print("Nous sommes le $date et il est $heure");
?>

Merci pour vos lumières, c'est peut-être possible en JS...?

Michel

<|[;o))
METIS
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Dernière intervention
3 avril 2008
- 26 avril 2005 à 05:11
3
Merci
Salut!

Je crois que l'affichage sur l'internet de la date et surtout de l'heure du serveur ne doit pas être pris a la légère.

Je suis Canadiens et dans l'est du pays, le fuseau horaire c'est du GMT-5 et si par exemple la page ou je navigue m'affiche l'heure d'un serveur de Paris, Bombay ou Tokyo, ça sera très désagréable.

Je pourais comprendre pour un site intranet dans une compagnie qui parcour un seul fuseau horaire et qui veuille bien afficher l'heure du serveur.

Si c'est le cas je te propose ceci :


<html>
<head>
<title>Untitled</title>

<script type= "text/javascript">

var dateJ
=
new Date
(<?php date
("Y\,m\-\1\,d\,H\,i\-\1") ?
>);

var time
= dateJ
.getTime
();

function majDateHeure
()

{
time
= time
+
(60
*
1000);
dateJ
=
new Date
(time
);
DH
= document
.getElementById
("dh");
annee
= dateJ
.getFullYear
();
mois
= dateJ
.getMonth
()
+
1;
mois
= mois
<10?
"0"+mois
: mois;
jour
= dateJ
.getDate
();
jour
= jour
<10?
"0"+jour
: jour;
heure
= dateJ
.getHours
();
heure
= heure
<10?
"0"+heure
: heure;
mins
= dateJ
.getMinutes
();
mins
= mins
<10?
"0"+mins
: mins;
DH
.innerHTML
=
"Nous sommes le "+jour
+"-"+mois
+"-"+annee
+" et il est "+heure
+":"+mins;
setTimeout
("majDateHeure()",60000); // 1000 = 1 seconde

}

</script>
</head>

"dh">

</html>

Je ne suis pas certain pour la partie PHP, ça fait un bail que je n'en ai fait.

A+, Ghislain

Merci GhislainLavoie 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de GhislainLavoie
Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
- 26 avril 2005 à 09:46
3
Merci
ce qu'il va se passer surtout,
c'est qu'assez rapidement, l'heure
ne va plus correspondre à rien.
le setTimeOut ou le setInterval ne sont
pas d'un précision extrême, c'est le moins
que l'on puisse dire.
et en mettant cette heure dans une [i]frame ?
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
- 25 avril 2005 à 15:41
0
Merci
Bonjour,
de nombreuses sur ce site,
de nombreuses réponses dans ce forum,
une petite recherche devrait permettre
de trouver une réponse.
sinon voir du coté de setTimeout et/ou setInterval.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Commenter la réponse de cs_bultez
Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 25 avril 2005 à 16:14
0
Merci
Oui, merci, mais je cherche un code basé sur l'heure du serveur, pas sur l'heure de l'ordi du client...

Quitte à ce que l'heure affichée soit l'heure du serveur (censée être plus juste) et ensuite incrémentée en local par l'horloge du client...

<|[;o))
METIS
Commenter la réponse de cs_metis15
Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 26 avril 2005 à 10:52
0
Merci
Réponse à GhislainLavoie
Merci pour le code mais ça ne marche pas et je ne suis pas assez calé pour voir d'où ça vient...
C'est pour un site d'un pote qui parle de bourse, à Paris. donc l'heure locale, c'est mieux, enfin si l'hébergeur et en France...!

Merci au Canada

Michel
<|[;o))
METIS
Commenter la réponse de cs_metis15
Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 26 avril 2005 à 10:59
0
Merci
Réponse à bultez
ce qu'il va se passer surtout,
c'est qu'assez rapidement, l'heure
ne va plus correspondre à rien.
le setTimeOut ou le setInterval ne sont
pas d'un précision extrême, c'est le moins
que l'on puisse dire.

>OK, je suis presque convaincu que c'est idiot, d'autant que l'heure est en bas de l'écran ! Mais tous les site le font.
Ce qui est gênant, c'est que l'heure reste figée à l'heure d'ouverture de la page...

et en mettant cette heure dans une [i]frame ?
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~

==>Euh...oui, ça apporte quoi le [i]frame, je ne connais pas ce truc.

Michel
<|[;o))
METIS
Commenter la réponse de cs_metis15
Messages postés
45
Date d'inscription
lundi 5 avril 2004
Dernière intervention
21 septembre 2006
- 26 avril 2005 à 15:45
0
Merci
Salut,
je vais te passer un code qui fonctionne, à mettre dans un fichier avec l'extension .php mais comme te l'as dit bultez il y aura un décalage à cause des fonctions setTimeOut ou setInterval mais c'est pas enorme comme décalage.

code:

<html><head>
<SCRIPT LANGUAGE="JavaScript">



/*
SCRIPT TROUVE SUR L'EDITEUR JAVASCRIPT
http://www.editeurjavascript.com
*/
//fonctions qui recupere l'heure du serveur
ejs_server_date = new Date(0,0,0,<? echo date("H, i, s"); ?>)
heure = ejs_server_date.getHours();
minute = ejs_server_date.getMinutes();
seconde = ejs_server_date.getSeconds()+1;//pour prendre en compte le temps d'affichage des images
function horloge(){
//today = new Date();





if (seconde < 10)
seconde = "0"+Math.round(seconde);
else if(seconde >= 60)
{
seconde = "00";
minute++;
}
if (minute < 10)
minute = "0"+Math.round(minute);
else if(minute >= 60)
{
minute = "00";
heure++;
}
if (heure < 10)
heure = "0"+Math.round(heure);
else if(heure >= 24)
{
heure = "00";
}






//on concatene les valeur pour afficher l'heure dans une zone de text
var heureConcatene=heure+":"+minute+"."+seconde;
document.getElementById('heure').value=heureConcatene;
seconde++;


}



setInterval("horloge()",1000);




function disp(txt) {document.write("<td height=2 align=center>");
document.write(txt);document.write("");}
function don_date_jour()
{var date_jour=new Date();
date_jour=don_date_format(date_jour);
return date_jour;}
function don_date_format(d1) {
var m=new Array(13);
m[1]="Janvier"; m[2]="Février"; m[3]="Mars"; m[4]="Avril"; m[5]="Mai"; m[6]="Juin";
m[7]="Juillet"; m[8]="Aout"; m[9]="Septembre"; m[10]="Octobre"; m[11]="Novembre"; m[12]="Décembre";
var d=new Array(8);
d[1]="Dimanche"; d[2]="Lundi"; d[3]="Mardi"; d[4]="Mercredi"; d[5]="Jeudi"; d[6]="Vendredi"; d[7]="Samedi";
var mois=m[d1.getMonth()+1];
var jour=d[d1.getDay()+1];
var date=d1.getDate();
var an=d1.getYear();
if (an<200) an=1900+an;
date=jour+" "+date+" "+mois+" "+an;
return date;
}

</SCRIPT></head>
<?php


echo "<script type='text/javascript'>";
echo 'disp(don_date_jour());';
echo'</SCRIPT>';
echo"\";
echo\"----
Il y a un décalage entre l'heure affichée et l'heure réelle du serveur de l'ordre de 1/2seconde par minutes
";
echo",car setInterval() n'est pas super précis., \n\";
echo\"----
, \n\";
echo"
";


?>
</html>
Commenter la réponse de monjal26
Messages postés
312
Date d'inscription
lundi 19 mai 2003
Dernière intervention
26 juin 2015
- 26 avril 2005 à 19:12
0
Merci
OK, ok, merci ça marche, super !!

Michel
Clown à 16h
<|[;o))))) ))) ) ))
METIS
Commenter la réponse de cs_metis15

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.