• Bonjour Visiteur. Bienvenue sur les nouveaux forums de MacGeneration. La peinture est encore fraiche, quelques boulons doivent être resserrés, plus d’informations demain !

Assombrir fond de la page selon l'heure

Teruki Shan

Nouveau membre
29 Juillet 2007
23
0
Merci vraiment c'est vraiment sympa. Mais voila donc ma page avec les codes et cela ne s'affiche pas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>





<script type="text/javascript"><!--

function tick()
{
var hdiv = document.all ? document.all["horloge"]
: document.getElementById("horloge");


var date1jan = new Date(2000,0,1,0,0,0);
var diff = date1jan.getTimezoneOffset() - 480;

var now = new Date();
now.setTime(now.getTime() + diff * 60000);

var h = now.getHours();
var m = now.getMinutes();
if (m < 10)
m = "0" + m;
var s = now.getSeconds();
if (s < 10)
s = "0" + s;
var str = h + ":" + m + ":" + s + " ";
if (h>11)
str += "PM";
else
str += "AM";

hdiv.innerHTML = str;

setTimeout("tick()", 1000);
}

//--></script>





<script type="text/javascript"><!--
function image_de_fond() {
var now = new Date();
var h = now.getHours();
var index;
if (h < 5) index = "04";
else if (h < 10) index = "01";
else if (h < 18) index = "02";
else if (h < 21) index = "03";
else if (h < 24) index = "04";
else index = "02";

document.body.background = "http://s3.amazonaws.com/"
+ "static-secondlife-com/login_screens/log_" + index + ".jpg";
}
//--></script>





<title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>

<style type="text/css" media="screen">
<!--
@import url(<?php bloginfo('stylesheet_url'); ?>);
<?php pickaskin(); ?>
<?php spitOutMenuPosition(); ?>

<?php spitOutWallpaperCSS(); ?>
-->
</style>

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> Flux RSS" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="<?php bloginfo('description'); ?>" />

<script src="<?php bloginfo('template_directory'); ?>/scripts/prototype.lite.js" type="text/javascript"></script>
<script type="text/javascript">
<!--

function createCookie(name,value,days)
{
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca;
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

function eraseCookie(name)
{
createCookie(name,"",-1);
}

function init()
{

var wallpapernumber = readCookie('wpcookie');
if (!wallpapernumber) {
createCookie('wpcookie','0',7);
}
else {
changebackground(wallpapernumber);
}

$('s').onfocus = focusS;
$('s').onblur = blurS;

}

function focusS() {
if ($('s').value == "Rechercher...") { $('s').value = ''; }
$('label').innerHTML = "Tapez votre texte puis validez par la touche Entrée.";
}

function blurS() {
$('label').innerHTML = "";
if ($('s').value == '') { $('s').value = 'Rechercher...'; }
}

function changebackground(number)
{
<?php spitOutWallpaperJS(); ?>
}

//-->
</script>

<?php spitOutIEFix(); ?>

<?php wp_head(); ?>

</head>

<body id="body">
<div id="header">
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
<p class="right" id="search">
<input type="text" value="Rechercher..." name="s" id="s" alt="Rechercher"/><br />
<label id="label"></label>
</p>
</form>



<body onload="image_de_fond();"><body onload="tick();">





<div id="horloge">&nbsp;</div>





<h5><div align="left">
<a href="http://secondlife-fr.net/wordpress/wp-login.php">Connexion</a> |
<a href="http://secondlife-fr.net/wordpress/wp-login.php?action=register">Inscription</a>
</h5>
<br><br><br><br><br><br><br><br><br><br>
<h4><center>

<style type="text/css">
<!--
a.type1 { color: #eaab02; }
a.type1:hover { color: #ffffff;}
-->
</style>

<a href="http://secondlife-fr.net/wordpress/" class="type1">Accueil</a> |
<a href="http://secondlife.com" class="type1">Site Officiel</a> |
<a href="http://blog.secondlife.com" class="type1">Blog Officiel</a> |
<a href="http://wiki.secondlife-fr.net" class="type1">LSL Wiki Français</a> |
<a href="http://mail.secondlife-fr.net" class="type1">WebMail SL-Fr</a> |
<a href="http://secondlife-fr.net/wordpress/?page_id=46" class="type1">Forums</a> |
<a href="http://secondlife-fr.net/wordpress/?page_id=48" class="type1">Le Staff</a>
</center></h4></div>

</div>
<div id="bodyowner">

Vous pouvez voir ma page a secondlife-fr.net/wordpress/ c'est la meme que plus haut.

Pouvez vous encore une fois m'aider ? Merci.
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
Tu ne devrais avoir qu'un seul tag <body> dans ton fichier.

Donc remplace tous tes tags
Bloc de code:
<body id="body">
<body onload="image_de_fond();"><body onload="tick();">
par un seul
Bloc de code:
<body id="body" onload="tick();image_de_fond();">
&#224; l'emplacement du premier.

Accessoirement, termine le fichier par
Bloc de code:
</body>
</html>

EDIT: ah, trop tard ?
 

Teruki Shan

Nouveau membre
29 Juillet 2007
23
0
Est il possible de faire en sorte que le script se réfère a l'heure du serveur et non celle de l'ordinateur ?
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
Pour &#231;a, il faut que le serveur donne sa propre heure comme point de d&#233;part dans le code javascript au moment de l'envoyer, par exemple au moyen de la fonction php localtime(). L'avancement de l'horloge en javascript c&#244;t&#233; client devra se faire &#224; partir de cette valeur.
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
on peut realiser cette fonction en javascript non ?
Non. En javascript, c'est le code ex&#233;cut&#233; c&#244;t&#233; client par le navigateur.

C&#244;t&#233; serveur, pour fabriquer la page envoy&#233;e, c'est du php.

... A moins que tu aies sous la main un serveur http qui fasse tourner du javascript (personnellement, je n'en ai jamais vu) ?
 

Teruki Shan

Nouveau membre
29 Juillet 2007
23
0
en fait ce qu'il faudrait c'est la meme chose que le script que tu m'a fait mais avec l'heure du serveur pour que l'heure soit toujours exactsur chaque pc tu vois ce que je veut dire §?
 

Teruki Shan

Nouveau membre
29 Juillet 2007
23
0
Voila un script qui le fait, comment faire pour que cela ressemble au meme que le précedent en javascript ?

<DIV ID=ejs_server_heure></div>
<SCRIPT LANGUAGE=JavaScript>
/*
SCRIPT TROUVE SUR L'EDITEUR JAVASCRIPT
http://www.editeurjavascript.com
*/
ejs_server_date = new Date(0,0,0,<? echo date("H, i, s"); ?>)
ejs_server_heu = ejs_server_date.getHours();
ejs_server_min = ejs_server_date.getMinutes();
ejs_server_sec = ejs_server_date.getSeconds();

function ejs_server_calc()
{
if (ejs_server_sec < 10)
ejs_server_sec = "0"+Math.round(ejs_server_sec);
else if(ejs_server_sec >= 60)
{
ejs_server_sec = "00";
ejs_server_min++;
}
if (ejs_server_min < 10)
ejs_server_min = "0"+Math.round(ejs_server_min);
else if(ejs_server_min >= 60)
{
ejs_server_min = "00";
ejs_server_heu++;
}
if (ejs_server_heu < 10)
ejs_server_heu = "0"+Math.round(ejs_server_heu);
else if(ejs_server_heu >= 24)
{
ejs_server_heu = "00";
}
ejs_server_texte = ejs_server_heu + ":" + ejs_server_min + ":" + ejs_server_sec;
if (document.getElementById){
document.getElementById("ejs_server_heure").innerHTML=ejs_server_texte;
}
ejs_server_sec++;
}
setInterval("ejs_server_calc()", 1000);
</script>
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
ejs_server_date = new Date(0,0,0,<? echo date("H, i, s"); ?>)
Et &#231;a, cach&#233; au milieu du javascript, ce ce serait pas du php ? :p

En fait, qu'on retourne le probl&#232;me dans tous les sens, la solution est toujours la m&#234;me: c'est le serveur qui doit donner l'heure qu'il est chez lui. Ensuite, le javascript inscrit dans la page doit utiliser cette information pour r&#233;gler et faire avancer l'horloge c&#244;t&#233; client.

Bref, la solution que tu exposes semble coller pile-poil &#224; ce que j'avais expliqu&#233;.
 

Teruki Shan

Nouveau membre
29 Juillet 2007
23
0
Que dois-je donc faire ?
JE viens aussi de trouver ce script
Je suis perdu moi dans tout ca ^^

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="CORDOU Olivier">
<meta name="generator" content="WebExpert 5">
<SCRIPT language=javascript>// D'autres scripts sur http://www.toutjavascript.com
//Modifi&#233; par CORDOU Olivier le 19/01/2002
var H=new Object;
<?php
print(" var d=new Date();");
print(" d.setYear(".date("Y").");");
print(" d.setMonth(".date("m").");");
print(" d.setDate(".date("d").");");
print(" d.setHours(".date("H").");");
print(" d.setMinutes(".date("i").");");
print(" d.setSeconds(".date("s").");");
?>
var local=new Date();
var delta=d.getTime()-local.getTime();
function AffHorloge() {
d=new Date();
d.setSeconds(d.getSeconds()+delta/1000);
date=d.getDate();
year=d.getYear();
month=d.getMonth();
var heure=d.getHours()+4;//fuseau horaire du serveur + 4
if (heure==24) date=date+1,heure=0;
if (heure==25) date=date+1,heure=1;
if (heure==26) date=date+1,heure=2;
if (heure==27) date=date+1,heure=3;
if (heure==28) date=date+1,heure=4;
if (heure==29) date=date+1,heure=5;
if (heure==30) date=date+1,heure=6;
if (heure==31) date=date+1,heure=7;
if (heure==32) date=date+1,heure=8;
if (heure==33) date=date+1,heure=9;
if (heure==34) date=date+1,heure=10;
if (heure==35) date=date+1,heure=11
if (heure==36) date=date+1,heure=12;
if (date>31) date=1,month=month+1;
if (month==2)if (date>28){date=1,month=month+1};
if (month==4) if (date>30) {date=1,month=month+1};
if (month==6) if (date>30) {date=1,month=month+1};
if (month==9) if (date>30) {date=1,month=month+1};
if (month==11) if (date>30) {date=1,month=month+1};
var min=d.getMinutes();
var sec=d.getSeconds();
if (date<10) date="0"+date;
if (month<10) month="0"+month;
if (heure<10) heure="0"+heure;
if (min<10) min="0"+min;
if (sec<10) sec="0"+sec;
contenu="<SPAN style='"+H.CSS+"'>Il est:"+heure+":"+min+":"+sec+" le <? require("date.php"); ?></SPAN>";//Il est:heure:minutes:secondes le date/mois/ann&#233;e

if (document.layers) {
document.layers["horloge"].document.write(contenu);
document.layers["horloge"].document.close();
}
if (document.all) {horloge.innerHTML=contenu;}
setTimeout("AffHorloge()",1000);
}

function InitHorloge(X,Y,CSS) {
H.CSS=CSS;H.X=X;H.Y=Y;
if (document.all) {
document.write("<DIV id='horloge' style='position:absolute;top:"+Y+";left:"+X+";visibility:show'></DIV>");
AffHorloge();
}
if (document.layers) {
document.write("<LAYER name='horloge' top='"+Y+"' left='"+X+"' visibility='show'></LAYER>");
setTimeout('AffHorloge()',200);
}
}
</SCRIPT></head>
<body>
<SCRIPT language="javascript">
InitHorloge(60,17,"font-family:verdana,arial;font-size:12px;font-weight:bold;color:red");//position de l'horloge et couleur, taille etc...
</SCRIPT>
</body>
</html>
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
Tu peux prendre n'importe lequel de ceux que tu as trouv&#233;, et l'adapter &#224; ton go&#251;t.

De toute mani&#232;re, ils fonctionnent tous sur le m&#234;me principe, mais en employant des fonctions l&#233;g&#232;rement diff&#233;rentes.

Par exemple, dans le dernier, on retrouve encore le bout de php o&#249; le serveur donne son heure:
Bloc de code:
[COLOR="Gray"](...)[/COLOR]
//Modifi&#233; par CORDOU Olivier le 19/01/2002
var H=new Object;
[B][COLOR="Teal"]<?php
print(" var d=new Date();");
print(" d.setYear(".date("Y").");");
print(" d.setMonth(".date("m").");");
print(" d.setDate(".date("d").");");
print(" d.setHours(".date("H").");");
print(" d.setMinutes(".date("i").");");
print(" d.setSeconds(".date("s").");");
?>
[/COLOR][/B]var local=new Date();
var delta=d.getTime()-local.getTime();
[COLOR="Gray"](...)[/COLOR]
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
Ce script PHP r&#233;cup&#232;re quelle heure ?

<?php
$heure=date("H\hi");
echo $heure;
?>
&#199;a la r&#233;cup&#232;re pour l'afficher sous une forme du type "3h45". &#199;a n'est pas pratique si l'on veut faire des calculs avec par la suite.

Si tu veux r&#233;cup&#233;rer les valeurs num&#233;riques s&#233;par&#233;ment, utilise plut&#244;t:
date("Y") pour l'ann&#233;e,
date("m") pour le mois,
date("d") pour le jour du mois,
date("H") pour l'heure,
date("i") pour les minutes,
date("s") pour les secondes.
 

PA5CAL

Vétéran
Club MacG
21 Juillet 2005
9 228
596
Île-de-France
Pour &#231;a tu affiches l'heure du client augment&#233;e d'une valeur constante calcul&#233;e &#224; partir de l'heure du serveur.

Le script que tu as donn&#233; au post #54 convient tout-&#224;-fait. Il suffit d'ajouter le d&#233;calage qui te convient dans la variable delta &#224; l'endroit o&#249; elle calcul&#233;e. Sa valeur est exprim&#233;e en milli&#232;mes de secondes (i.e. il faut multiplier le nombre d'heures voulu par 3600000).