Se connecter avec
S'enregistrer | Connectez-vous

[RESOLU (parait-il)] Changer le lien vers la feuille de style en fonction de l'h

Dernière réponse : dans Programmation

Bonjour,
J'aimerai changer le CSS de mon site en fonction de l'heure qu'il est. Donc, je suppose que le moyen le plus simple est de changer le lien donnant vers ce dernier.
Comme cela:

Le matin:
  1. <link rel="stylesheet" href="style-jour.css" type="text/css">

Le soir:
  1. <link rel="stylesheet" href="style-nuit.css" type="text/css">


J'ai trouver comment changer la destination d'un lien dans le "body" d'une page, grâce à du Java:
  1. <script language="JavaScript">
  2. function lien_heure() {
  3. var aujourdhui = new Date()
  4. var heure = aujourdhui.getHours()
  5. if ( heure >= 0 && heure < 7 ) location.href = "heures/nuit.html";
  6. if ( heure >= 7 && heure < 13 ) location.href = "heures/matin.html";
  7. if ( heure >= 13 && heure < 20 ) location.href = "heures/apresmidi.html";
  8. if ( heure >= 20 && heure < 24 ) location.href = "heures/nuit.html";
  9. }
  10. </script>


Mais ceci ne fonctionne pas pour un lien vers une feuille de style car celui-ci est ce situé dans la partie "head".

Existerait-il un moyen de changer ce lien ?

Merci d'avance.
Lassé par la pub ? Créez un compte

Tu construis dynamiquement ton code selon l'heure .

La méthode :

récupere la date / heure
un switch si > ou < et tu garnis la variable avec un string par exemple .

$var = 'jour';

ensuite dans ton html

<link rel="stylesheet" href="style-<?php echo $var;?>.css" type="text/css">

Le problème c'est que ça a de grandes chances de ne pas marcher comme avec le Javascript parce que c'est dans la balise head, enfin je vais quand même essayer.

Donc si j'ai bien compris, il faut que je place "<?php echo $var;?>" la place de "jour" ou "nuit" dans le lien vers la feuille de style. Et plus bas dans la partie "body", je place quelque chose du genre:

  1. <?php
  2. FOR /F "usebackq tokens=1-4 delims=: " %%i in (`echo %time%`) do (
  3. set heure=%%i
  4. set minute=%%j
  5. )
  6.  
  7. if (%heure% > 7) $var == jour;
  8. if (%heure% > 18) $var == nuit;
  9.  
  10. ?>


ACHHHH ! Je comprends rien. Je touche jamais à ça ! :crying:
Tu pourrais pas me donner le code exact à mettre et c'est tout ? Parce que pour comprendre ça, faudra que je lise des cours de PHP, mais j'ai pas le temps de faire ça ...

Le php est ecécuté coté serveur, c'est à dire que dans ton code source une fois exécuter par ton navigateur tu ne verras pas de code php..;

Au passage tu viens de nous faire un magnifique mixe entre le php et le javascrit....

Bref je vais te filer le code mais sache que tu ne vas rien y comprendre ;) 




<html>
<head>

<?php

$quand = date('a'); // va faire un tour ici :http://www.phptools4u.com/articles/view.php?article=2&i... ou fait des recherches sur la fonction date... Mais je ne veux pas que tu me dises comment on sait si c'est la nuit !!!
if($quand == 'am') // on est le matin
{
$css = 'style-jour.css';
}
else // on est l apres midi
{
$css = 'style-nuit.css';
}

?>

<link rel="stylesheet" href="<?php echo $css;?>" type="text/css">



</head>

<body>

Ton super site


</body>
</html>

Miiiaaawooow ! Merci, ça marche pas mal. Mais c'est pas exactement ce que je recherchais, je pensais plutôt à quelque chose du genre: Entre 20h & 7, CSS=Nuit et entre 7h & 20h, CSS=Jour.

Peut être quand changeant le code comme ceci, j'arriverai à ce que je cherche:

  1. <?php
  2.  
  3. $quand = date('H');
  4. if($quand == '7,8,9,10,11,12,13,14,15,16,17,18,19,20') // on est le matin
  5. {
  6. $css = 'style-jour.css';
  7. }
  8. else // on est l apres midi
  9. {
  10. $css = 'style-nuit.css';
  11. }
  12.  
  13. ?>


Alors, je pense qu'on a pas le droit de mettre des virgules comme ça, dommage :-( .
Donc si quelqu'un sait comment faire pour avoir une variable (je crois que ça s'appelle comme ça) à choix multiple ...

ah lalala je vois que tu as trouver pour récupérer l'heure... C'est bien c'est pourquoi je vais continuer à t'aider...

Utilise des intervalles


if( $quand >= 7 && $quand <= 20 )


je te traduit sa en francais :

si l'heure est supérieur ou égale à 7 ET l'heure est inférieur ou égale à 20

Voila en gros la condition vaut vrai de 7 heures à 20 heures !!!

HEPAAAAAA !

J'AI REUSSIS !
Après de nombreux essais et 15mins de tatonnement, j'ai enfin réussis à faire marcher mon truc ! Et tout seul en plus ... héhéhé ... 8-) ! xP

Enfaite c'est assez simple, j'ai encore une fois mixé avec ce que je savais en Javascript !

  1. <?php
  2.  
  3. $quand = date('H:i'); // Pour dire ce que vaut "quand" !
  4. if($quand >= '6:59') // = SI "HEURE" PLUS GRANDE QUE 6h59
  5. if($quand <= '19:59') // ET SI "HEURE" PLUS PETITE QUE 19h59
  6. {
  7. $css = 'style-jour.css'; // ALORS CSS=JOUR !
  8. }
  9. else // SI-NON
  10. {
  11. $css = 'style-nuit.css'; // CSS=NUIT
  12. }
  13.  
  14. ?>


Awooow tchatchatcha ! Merci beaucoup Kymic !
Moi qui pensais que le PHP n'étais qu'un Javascript dégénéré, je me suis bien trompé !

Ah zut, t'avais répondu. Si seulement j'actualisais ma page un peu plus souvent, j'aurai pas eut besoin de chercher. Enfin c'est peut-être mieux, parce que ça m'a fait une petite intro au PHP ! ;-)

--

Citation :
if( $quand >= 7 && $quand <= 20 )


Aaaaahhhh... On a le droit de faire ça (mettre "&&") aussi en PHP, c'est fou ce que ça ressemble au Java.
Ta manière est à mon avis plus rapide d'éxecution: je le vais la mettre.

je ne sais pas si c'est plus rapide ( en tout cas tu ne verras pas la différence à "l'oeil nu" ) mais c'est surtout plus clair et plus compréhensible !!!

Et tu vois tu avais trouver tout seul finalement ;-)

&& => ET
|| => OU

pour info ;) 

le java(script), le C , le C++ le C# et le PHP tout ces langages se ressemblent !

Bonjour,
je souhaiterai un gros coup de main :
je voudrais pendant 7 jours après la modification d'une page web en HTML, utiliser une CSS de type NEWS et une autre OLD tant que la page n'a pas été modifiée...
Mon problème est le suivant : je n'ai trouvé aucun script Java et mes connaissances en PHP sont plus que misérables :( 
Quelqu'un peut-il me mettre sur une piste de travail ?
Merci d'avance à tous ceux qui me liront et accepteront de m'apporter de l'aide

Bonjour, j'ai esseyer d'inclurece script dans mon site, mais sa m'affiche sa :
"= 8:00 && $quand <= 20:30 ) { $css = 'style813.css'; } else { $css = 'style1322.css'; } ?> "

Et tout cela en haut de mon site (feuille CSS pas charger).

Je vais vous montrer le début de ma page :
<html>
<head>
<title>TitreTitreTitre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

<body>

<?php
$quand = date('H:i');
if( $quand >= 8:00 && $quand <= 13:00 )
{
$css = 'style813.css';
}
else
{
$css = 'style1322.css';
}
?>


...
Expert Programmation

Ton code ne va pas marcher xinnony ... il faut que tu récupères que l'heure dans le $quand sinon tu fais des comparaisons de chaines de caractère.

Au passage là tu auras également une Parse error.

Si tu veux, pour le PHP il y a une différence entre le "chiffre 5" et la "chaîne de caractère 5"... Ce n'est pas forcément une notion facile à comprendre mais elle est essentielle !

Ton code peut fonctionner en enlevant les ":" et donc en récupérant l'heure sous la forme date('Hi') et en modifiant les valeurs de comparaisons : if( $quand >= "800" && $quand <= "1300" ) !
Lassé par la pub ? Créez un compte
Tom's guide dans le monde