Bonjour,
J'habite en zone GMT+8. Pour simplifier la vie à ma famille j'ai mis une horloge Paris/Singapour. En fait j'ai bricolé un petit exemple trouvé sur internet. J'ai choisi javascript et pas php car j'avais envie que les seconde soient rafraichies. En démo sur mon site : http://www.pontoizeau.org/Nicolas/dotclear/
J'ai 2 problèmes avec ce script :
1) Il ne passe pas à la validation
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.pontoizeau.org%2FNicolas%2Fdotclear%2F
2) Je n'arrive pas à le séparer de la page pour le mettre dans un fichier à part alors que j'y suis arrivé en local. J'ai mis
<script type="text/javascript" src="clock.js">
clock.js etant le fichier contenant le javascript. J'ai vérifié les droits du fichier sur le ftp ils sont bien 755. Je comprends pas pourquoi ça marche en local et pas sur le serveur.
Voilà le script :
</script>
<form name="info">
Paris :
<input class="clock" type="text"
size="7" readonly id="clockparis" onFocus="this.blur();">
Sg :
<input class="clock" type="text"
size="7" readonly id="clocksg" onFocus="this.blur();">
<script type="text/javascript">
function CalculeHeureAvance(){
auj = new Date();
auj_UTC = Date.UTC(auj.getFullYear(),auj.getMonth(),auj.getDate(),auj.getHours(),auj.getMinutes(),auj.getSeconds())
from = new Date(auj.getFullYear(),3,1,0,0,0);
do
{
from = new Date(from.getTime() - (24*60*60*1000));
} while (from.getDay()!=0)
to = new Date(auj.getFullYear(),10,1,0,0,0);
do
{
to = new Date(to.getTime() - (24*60*60*1000));
} while (to.getDay()!=0)
return auj_UTC>=from.getTime()&&auj_UTC<=to.getTime()?2:1;
}
function heure(){
var d = new Date();
var h = d.getUTCHours();
var m = d.getMinutes();
var s = d.getSeconds();
var hparis = "";
m = m<=9? "0"+m:m;
s = s<=9? "0"+s:s;
hparis = eval(h)+CalculeHeureAvance();
// Paris en heure d ete et d'hivers le dernier dimance de mars et d'octobre
var hsg = h+8;
// Singapour est GMT + 8 tout le temps
hparis = hparis>23? hparis%24:hparis;
hparis = hparis<=9? "0"+hparis: hparis;
hsg = hsg > 23? hsg%24:hsg;
hsg = hsg<=9? "0"+hsg:hsg;
var timeparis = "";
timeparis = hparis + ":" + m + ":" + s;
document.info.clockparis.value = timeparis;
var timesg="";
timesg = hsg + ":" + m + ":" + s;
document.info.clocksg.value = timesg;
setTimeout("heure()",1000);
}
heure();
</script>
</form>
Existe une meilleure méthode que le javascript tout en restant dynamique (ie avoir les secondes rafraichient)?
Modifié le 24 Jan 2005 - 22:46
J'habite en zone GMT+8. Pour simplifier la vie à ma famille j'ai mis une horloge Paris/Singapour. En fait j'ai bricolé un petit exemple trouvé sur internet. J'ai choisi javascript et pas php car j'avais envie que les seconde soient rafraichies. En démo sur mon site : http://www.pontoizeau.org/Nicolas/dotclear/
J'ai 2 problèmes avec ce script :
1) Il ne passe pas à la validation
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.pontoizeau.org%2FNicolas%2Fdotclear%2F
2) Je n'arrive pas à le séparer de la page pour le mettre dans un fichier à part alors que j'y suis arrivé en local. J'ai mis
<script type="text/javascript" src="clock.js">
clock.js etant le fichier contenant le javascript. J'ai vérifié les droits du fichier sur le ftp ils sont bien 755. Je comprends pas pourquoi ça marche en local et pas sur le serveur.
Voilà le script :
</script>
<form name="info">
Paris :
<input class="clock" type="text"
size="7" readonly id="clockparis" onFocus="this.blur();">
Sg :
<input class="clock" type="text"
size="7" readonly id="clocksg" onFocus="this.blur();">
<script type="text/javascript">
function CalculeHeureAvance(){
auj = new Date();
auj_UTC = Date.UTC(auj.getFullYear(),auj.getMonth(),auj.getDate(),auj.getHours(),auj.getMinutes(),auj.getSeconds())
from = new Date(auj.getFullYear(),3,1,0,0,0);
do
{
from = new Date(from.getTime() - (24*60*60*1000));
} while (from.getDay()!=0)
to = new Date(auj.getFullYear(),10,1,0,0,0);
do
{
to = new Date(to.getTime() - (24*60*60*1000));
} while (to.getDay()!=0)
return auj_UTC>=from.getTime()&&auj_UTC<=to.getTime()?2:1;
}
function heure(){
var d = new Date();
var h = d.getUTCHours();
var m = d.getMinutes();
var s = d.getSeconds();
var hparis = "";
m = m<=9? "0"+m:m;
s = s<=9? "0"+s:s;
hparis = eval(h)+CalculeHeureAvance();
// Paris en heure d ete et d'hivers le dernier dimance de mars et d'octobre
var hsg = h+8;
// Singapour est GMT + 8 tout le temps
hparis = hparis>23? hparis%24:hparis;
hparis = hparis<=9? "0"+hparis: hparis;
hsg = hsg > 23? hsg%24:hsg;
hsg = hsg<=9? "0"+hsg:hsg;
var timeparis = "";
timeparis = hparis + ":" + m + ":" + s;
document.info.clockparis.value = timeparis;
var timesg="";
timesg = hsg + ":" + m + ":" + s;
document.info.clocksg.value = timesg;
setTimeout("heure()",1000);
}
heure();
</script>
</form>
Existe une meilleure méthode que le javascript tout en restant dynamique (ie avoir les secondes rafraichient)?
Modifié le 24 Jan 2005 - 22:46