JeuWeb - Crée ton jeu par navigateur
Problème de calendrier - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème de calendrier (/showthread.php?tid=895)



Problème de calendrier - kunutheking - 03-03-2007

Bonjour j'ai quelque problème pour créer un calendrier .::.
Cette fonction devrait me donner le numéro du jour dans la semaine à l'aide de son timetamp. Pour ce paramètre j'ai mis le timestamp du 1er d'un certain mois d'une certaine année.
Code PHP :
<?php 
$premier
= date('w', mktime(0, 0, 0, $mois, 1, $an, 1));

Or pour Avril 2007 il m'indique que le numéro du jour est 0 (Lundi) alors qu'en réalité c'est 6 (Dimanche). De même pour tout les autres mois qui suivent...
Est ce que quelqu'un pourrait m'aider ? ... merci d'avance


RE: Problème de calendrier - Yoda54 - 03-03-2007

Bonsoir,

Va jeter un oeil dans la doc de php sur la fonction date, de mémoire, le jour 0 correspond au Dimanche (premier jour de la semaine chez les anglais... bah oui, font rien comme tout le monde ceux-là) Smile.

Edit: voici la page en question: http://fr.php.net/manual/fr/function.date.php
Ne pas confondre le 'w' miniscule ou le 0 correspond au dimanche et le 'W4 majuscule où le 0 correspond au lundi.


RE: Problème de calendrier - genosite - 03-03-2007

Il faut que tu remplace w par j
Code PHP :
<?php 
$premier
= date('j', mktime(0, 0, 0, $mois, 1, $an, 1));



RE: Problème de calendrier - kunutheking - 04-03-2007

Non c'est pas par j qu'il faut remplacer.

En fait ce que je comprend pas c'est que j'ai pris Lundi = 0 et Dimanche = 6 et que ça marche très bien pour les 3 premiers mois de l'année ...


RE: Problème de calendrier - genosite - 04-03-2007

mktime(entier heure, entier minute, entier seconde, entier mois, entier jour, entier annee)
ton code ne correspond pas a la syntaxe
mktime(0, 0, 0, $mois, 1, $an, 1)
le 1 soustrai 1
il ya une solution mais il faut que ta vertion php soit en 5.1.0 avec "N"

http://lwdev4.free.fr/jeux/test/test2.php


RE: Problème de calendrier - genosite - 04-03-2007

Je pense avoire trouver une solution

Code PHP :
<?php 
$jour
= date('w', mktime(0, 0, 0, date("m"), date("d"), date("Y")));
switch(
$jour)
{
case
'1':
echo
"Lundi premier jour de la semaine";
$day=1;
return
$day;
break;
case
'2':
echo
"mardi deuxieme jour de la semaine";
$day=2;
return
$day;
break;
case
'3':
echo
"mercredi troisieme jour de la semaine";
$day=3;
return
$day;
break;
case
'4':
echo
"jeudi quatrieme jour de la semaine";
$day=4;
return
$day;
break;
case
'5':
echo
"vendredi cinquieme jour de la semaine";
$day=5;
return
$day;
break;
case
'6':
echo
"samedi sixieme jour de la semaine";
$day=6;
return
$day;
break;
case
'0':
echo
"dimanche septieme jour de la semaine";
$day=7;
return
$day;
break;
default:
echo
"ECHEC SWITCH";
}
pas terrible mais sa marche


RE: Problème de calendrier - Yoda54 - 04-03-2007

Bonjour,

Je t'ai raconté une bêtise hier Kunutheking, le W majuscule donne le numéro de la semaine, pas le numéro du jour; dans ce que tu veux faire, et en utilisant 0 pour le lundi, il faudrait utiliser la ligne suivante:

Code PHP :
<?php 
$premier
= strftime('%u', mktime(0, 0, 0, $mois, 1, $an, 1));

@ generosite: le 1 à la fin de la fonction mktime sert à signifier que l'heure d'hiver est activée, ce n'est pas forcément utile pour la conception d'un calendrier mais cela ne devrait pas interféré au niveau du résultat du numéro du jour.


RE: Problème de calendrier - kunutheking - 04-03-2007

d'accord merci je vais essayer ça


RE: Problème de calendrier - genosite - 04-03-2007

@ Yoda oui je sais mais cela enlever 1 jour puisque l'heure etait 0h0min0sec
voila