comment connaitre précisement (ou pas) la periode de la journee

mastig
Invité n'ayant pas de compte PHPfrance

20 sept. 2007, 17:31

bonjour a tous,

j'aimerai savoir s'il est possible de connaitre la periode de la journee a laquelle se connecte un visiteur selon l'heure de chez lui.

je m'explique, j'aimerai pouvoir afficher un lien (ou carrement une redirection) uniquement pendant la nuit. par ex si un visiteur se connecte entre 22h et 4h du matin il est dirigé sur une page 'nuit' et le reste de la journée il reste sur la page 'normale'.

etant un peu insomniaque j'aimerai pouvoir faire partager 'un truc en plus' aux visiteurs de la nuit :)

merci, bonne journée

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 sept. 2007, 18:17

Tu peux le faire facilement en fonction de l'heure du serveur en utilisant la fonction date() pour connaitre l'heure.

Maintenant pour le faire par rapport à l'heure de l'utilisateur, je pense qu'il te faut un petit bout de code javascript pour récupérer l'heure de son système et le transmetre à php :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 27 Messages

21 sept. 2007, 05:06

salut..
j'ai bossé un peu (je suis newbies et ca me permet de progresser) sur ton prb et voila ce que j'ai pondu,c'est pas le top niveau prog mais j'accepte toutes critique qui me fera progresser...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ta page de jour</title>
</head>
<body>
<script language="javascript">
var maVar=new Date
var maVar2=new Date
var heure=maVar.getHours()
var minute=maVar2.getMinutes()
if (heure<6)//_________________de   22h a  6h ta page et redirigé_______________________________
	{
	 window.location="ta page de nuit.html"
	}
	else if (heure>22)
	{
	window.location="ta page de nuit.html"
	}
</script>
</body>
</html>
...oui je sais..c'est pas du php ...@+ :lol:

au fait j'ai testé coté serveur et cela me renvoie l'heure locale..Peut étre que mon serveur se trouve en france a moins que mon script travail coté client....

re...je vient d'apprendre que si l'utilisateur desactive javascript alors ce script et a foutre a la poubelle....je suis vraiment un newbie....bon vais bossé sur version php...
Grâce à l’ordinateur, on peut faire plus rapidement des choses qu’on n’aurait pas eu besoin de faire sans ordinateur.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 sept. 2007, 08:40

re...je vient d'apprendre que si l'utilisateur desactive javascript alors ce script et a foutre a la poubelle....je suis vraiment un newbie....bon vais bossé sur version php...
Oui, enfin faut quand même se dire que c'est véritablement une petite minorité d'utilisateurs qui sait comment fonctionne javascript et qui le désactive volontairement. Sachant qu'avec ajax ils se retrouvent bêtement bloqués sur de plus en plus de sites, la proportion n'ira pas en grandissant. Mais il faut effectivement savoir que c'est possible de le désactiver et tant que possible, trouver des solutions qui ne dépendent pas de js :)

Ps : A noter que pour récupérer les minutes dans ton javascript, tu n'as pas besoin d'instancier un nouvel objet date, tu peux très bien continuer d'utiliser maVar... d'autant qu'en l'occurence ici, tu n'utilises pas les minutes ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

x@v
Mammouth du PHP | 570 Messages

21 sept. 2007, 09:59

Est-ont obligé d'instancié un nouvel objet pour pouvoir utilisez la méthode ?
Quel est sont interêts ?

Code : Tout sélectionner

var maVar=new Date; var heure=maVar.getHours();
Pour la deuxième variable des minutes tu ne t'en sers pas dans la suite ?
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

21 sept. 2007, 10:19

C'est plus destiné au forum javascript comme question, mais effectivement, les méthodes getHours() ou getMinutes() d'une date javascript ne sont pas "static", c'est à dire qu'elle nécessite qu'un objet date ait été instancié pour pouvoir être appelées.

En fait ces méthodes retournent les heures et les minutes en fonction de la "date contenue dans l'objet" il est donc indispensable d'avoir une instance dans laquelle cette date a été définie (sachant que par défaut, c'est la date et l'heure courante qui sont utilisées)

Pour les minutes il ne s'en est pas servi dans son exemple car il gere juste la plage 22h-6h, mais tu peux très bien les y intégrer si tu en as besoin d'une période plus fine que l'heure :

Code : Tout sélectionner

// 22h45 => strictement supérieur à 22h OU égal à 22h mais avec plus de 45 minutes if ( heure>22 || heure==22 && minute>=45) { ... }
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

mastig
Invité n'ayant pas de compte PHPfrance

22 sept. 2007, 06:43

salut..
j'ai bossé un peu (je suis newbies et ca me permet de progresser) sur ton prb et voila ce que j'ai pondu,c'est pas le top niveau prog mais j'accepte toutes critique qui me fera progresser...

au fait j'ai testé coté serveur et cela me renvoie l'heure locale..Peut étre que mon serveur se trouve en france a moins que mon script travail coté client....

re...je vient d'apprendre que si l'utilisateur desactive javascript alors ce script et a foutre a la poubelle....je suis vraiment un newbie....bon vais bossé sur version php...
Merci à ryle et surtout à toi epock c'est parfait en javascript et ça fonctionne bien :)

si tu avances dans ton code en php je serai interessé de voir aussi :p

bonne journée à tous

ps : redirection de nuit, c'est sympa comme nom pour la page!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 sept. 2007, 14:00

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...