Date et heure sans refresh la page

Résolu
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 juin 2015 - 25 avril 2005 à 13:55
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre 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
A voir également:

8 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 4
26 avril 2005 à 05:11
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
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
26 avril 2005 à 09:46
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]~
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
25 avril 2005 à 15:41
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]~
0
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 juin 2015
25 avril 2005 à 16:14
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 juin 2015
26 avril 2005 à 10:52
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
0
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 juin 2015
26 avril 2005 à 10:59
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
0
monjal26 Messages postés 45 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 21 septembre 2006
26 avril 2005 à 15:45
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>
0
cs_metis15 Messages postés 311 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 juin 2015
26 avril 2005 à 19:12
OK, ok, merci ça marche, super !!

Michel
Clown à 16h
<|[;o))))) ))) ) ))
METIS
0