

new!








|
|
|
 |
| > horloge serveur |
[ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 08-05-2008 à 13:38 | 6 messages ]
  Bonjour,
je me suis fait un script d'une horloge serveur ,
voici le code html :
<!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=utf-8" />
<title>Test horloge</title>
<link href="basic.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="javascript.js"></script>
</head>
<body>
<div id="date"></div>
<div id="horloge"></div>
</body>
</html>
|
|
le fichier javascript
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
function horloge() {
var heure = file("horloge.php");
if (heure != false) {
document.getElementById("horloge").innerHTML = heure;
}
else
{
document.getElementById("horloge").innerHTML = "erreur dans le code, veuillez contacter l'administrateur.";
}
}
timerID = setInterval(horloge,1000);
function datee () {
var dates = new Date();
var journe = dates.getDate();
var mois = (((dates.getMonth()+1) <10) ? "0" : "") + (dates.getMonth()+1);
var mois = journe +"/"+ mois;
var annee = mois +"/"+ dates.getYear();
document.getElementById("date").innerHTML = annee;
}
dateID = setInterval(datee,1000);
|
|
et le fichier horloge.php
<?php
$heure = date("H");
$minute = date("i");
$seconde = date("s");
echo $heure.":".$minute.":".$seconde;
?>
|
|
Merci.
 
|
|
|
[ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 09-05-2008 à 09:32 | 6 messages ]
  Je viens de remarquer que je ne disait rien sur mon problème ...
En fait vous pouvez constater a cette adresse :
http://mimagyc.free.fr/groupe/
que l'horloge ce et a jour toute les 2 seconde, et non toute les seconde!
j'ai tester de changer les interval, mais sans succès ...
Merci.
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 09-05-2008 à 10:12 | 3782 messages ]
  cache navigateur, cache serveur, cache proxy...
Je suppose que c'était juste pour faire des tests et pas pour mettre en production ?
Tu ne comptes quand même pas interroger ton serveur toutes les secondes pour connaitre l'heure ?
Ni concaténer une date locale avec une heure serveur ? (Il se passe quoi si on est pas dans le même fuseau horaire ?)
A priori je récupérerai la date et l'heure serveur UNE fois, tu calcules le delta avec l'heure locale puis pour le rafraichissement
tu affiches le calcul heure locale +- delta, mais tu ne vas pas stresser un serveur pour connaitre l'heure...
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
| [ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 09-05-2008 à 10:59 | 6 messages ]
  Je dois avoir l'heure du serveur, c'est pour un jeu online, et l'heure doit être la même pour tous, pour pouvoir savoir dans combien de temps arrive les évent et autre .
Si j'ai bien compris , il faut que je récupéré une seul fois l'heure serveur, ensuite je la fait tourné toutes les secondes sans interroger le serveur ...
je ne vois pas trop comment faire, mais je vais essayer tout de même ^^
Merci.
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 09-05-2008 à 14:33 | 3782 messages ]
 
mimagyc a dit
Si j'ai bien compris , il faut que je récupéré une seul fois l'heure serveur, ensuite je la fait tourné toutes les secondes sans interroger le serveur ...
je ne vois pas trop comment faire, mais je vais essayer tout de même ^^
Merci. |
|
récupérer heure locale (A) (ex 10:00:00)
récupérer heure serveur (B) (ex: 09:00:01
récupérer heure locale (C) (ex: 10:00:02)
delta = C - B + ((C-A) / 2)
(ex 10:00:02 - 09:00:01 - (00:00:02/2) = 01:00:00 = heure locale est en avance d'une heure par rapport au serveur)
Si on considère que la durée d'aller-retour est négligeable tu peux même écrire delta = C - B
Après, au lieu d'interroger le serveur toutes les secondes, tu récupères l'heure locale à laquelle tu soustrais le delta.
21:37:15 (local) - 01:00:00 = 20:37:15 sur serveur
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
| [ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 10-05-2008 à 22:01 | 6 messages ]
  oki je vois , mais je pense que ma facon de récupéré l'heure en php n'est pas la meilleur, ou bien quand je la récupere, je doit la hacher avec les ":" en javascript ... ou tu as une meilleur solution ?
merci.
| [ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-05-2008 à 12:50 | 6 messages ]
  J'ai un peu de mal, et surtout je ne sais pas comment mis prendre pour récupéré l'heure une seul fois, et ensuite faire tournée l'horloge sans quel redemande l'heure en php ...
voila ce que j'ai pu faire ... bien sur ca ne marche pas ... suis je dans la bonne direction ?
<!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=utf-8" />
<title>Test horloge</title>
<link href="basic.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="javascript.js"></script>
<?php
$heure = date("H");
$minute = date("i");
$seconde = date("s");
?>
</head>
<body onload="horlogephp(<?php echo $heure ?>,<?php echo $minute ?>,<?php echo $seconde ?>)," onload="datee()">
<div id="date"></div>
<div id="horloge" ></div>
<div> Premier heure : <?php echo $heure.":".$minute.":".$seconde ; ?></div>
</body>
</html>
|
|
javascript :
function horlogephp (heure,minute,seconde) {
heures = getHours(heure);
minutes = getMinutes(minute);
secondes = getSeconds(seconde);
alert("marche");
valeurheure = ((heures < 10) ? "0" : "") + heures ;
valeurheure += ((minutes < 10) ? ":0" : ":") + minutes;
valeurheure += ((secondes < 10) ? ":0" : ":") + secondes;
document.getElementById("horloge").innerHTML = valeurheure;
timerRunning = true;
}
timerID = setInterval(horlogephp,1000);
function datee () {
var dates = new Date();
var journe = dates.getDate();
var mois = (((dates.getMonth()+1) <10) ? "0" : "") + (dates.getMonth()+1);
var mois = journe +"/"+ mois;
var annee = mois +"/"+ dates.getYear();
document.getElementById("date").innerHTML = annee;
}
|
|
je ne sais pas comment mis prendre a ce niveau la :
heures = getHours(heure);
|
|
dois je tout de meme faire un new Date(); avant ? ou bien vu que je me calle sur l'heure du serveur .. je n'en ai pas besoin ?
merci pour vos réponse! 
edit : quand je fait dans la function horlogephp(), un alert(heure+":"+minute+":"+seconde); , j'ai bien l'heure qui s'affiche.
Lorsque je rajoute un new Date(); j'ai l'heure client 
| [ Posté par mimagyc ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-05-2008 à 17:24 | 6 messages ]
  et voici la réponse :
<html>
<head>
<script language="javascript" type="text/javascript">
//var _maintenant = new Date();
var heures = <?php echo date("H");?> ;//_maintenant.getHours();
var minutes = <?php echo date("i");?> ;//_maintenant.getMinutes();
var secondes = <?php echo date("s");?> ;//_maintenant.getSeconds();
function horlogephp () {
secondes += 1;
if (secondes >= 60)
{
secondes = 0;
minutes += 1;
}
if (minutes >= 60)
{
minutes = 0;
heures += 1;
}
if (heures >= 24)
heures = 0;
valeurheure = ((heures < 10) ? "0" : "") + heures ;
valeurheure += ((minutes < 10) ? ":0" : ":") + minutes;
valeurheure += ((secondes < 10) ? ":0" : ":") + secondes;
document.getElementById("horloge").innerHTML = valeurheure;
}
setInterval(horlogephp, 1000);
</script>
</head>
<body>
<div id="horloge"></div>
</body>
</html>
|
|
voila voila ^^
Merci.
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 13-05-2008 à 09:13 | 3782 messages ]
  Ne récupérer l'horloge qu'une seule fois est de la responsabilité de la page appelante. Tu devrais donc conserver ton script hrologe php en l'état (+ ajouter la date)
La (les) page(s) appelante(s) appelent une fois horloge.php (= tu ne fais plus le setinterval pour appeler horloge.php).
Après il convient de faire la différence entre cette date serveur et l'heure locale.
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
|
|
Services email :
  Vous devez vous identifier pour profiter des services par email du forum.
|

|