Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/09/2008, 14h50   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 10
Points : 2
Points : 2
Par défaut [Dates] numéro de la dernière semaine de l'année

Bonjour,

J'ai un souci sur une ligne de programme utilisant date et mktime sur PHP4.2.0

En effet quant je lance la ligne suivante
$lasweek =date("W",mktime(0,0,012,31,2008));
$lastweek me donne en réponse 53 alors que le dernier jour de l'année 2008 est en semaine 1 !!

Quand je fais la même ligne sur un autre PHP 4.3.10 je trouve la bonne réponse .


Merci d'avance ..
LYPACAN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 16h58   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Bonjour,

PHP utilise la norme ISO-8601 et termine donc son année avec une éventuelle semaine 53.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 09h36   #3
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Il manque une virgule :
Code :
$lasweek =date("W",mktime(0,0,012,31,2008));
L'éxécution de ce code donne 53, ce qui est évidemment faux pour 2008.

Code :
$lasweek =date("W",mktime(0,0,0,12,31,2008));
Ce dernier donne 1, ce qui est coorect.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 09h47   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Alors moi je ne comprends plus rien.
Pour ce que j'avais compris, et confirmé par mon calendrier : du 29 au 31 on etait en semaine 53 et du 1 au 4 en semaine 1.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 10h17   #5
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Citation:
Envoyé par sabotage Voir le message
Pour ce que j'avais compris, et confirmé par mon calendrier : du 29 au 31 on etait en semaine 53 et du 1 au 4 en semaine 1.
Une année comporte une semaine 53 si :
  • le 1er janvier est un jeudi ;
  • le 1er janvier est un mercredi, et l'année est bissextile.
Ce qui n'est pas le cas pour 2008 qui est bissextile, mais le 1er janvier était un mardi.
Et puis une semaine est une semaine (du lundi au dimanche, selon la norme déjà citée), et elle ne peut avoir qu'un seul numéro.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 11h31   #6
Invité de passage
 
Inscription : novembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 10
Points : 2
Points : 2
Bonjour,

Il est vrai que ma précititation , j'ai oublié une virgule .

Mais mon problème est toujours d'avoir un résultat différent suivant la version du PHP !!

En version 4.2.0 je trouve que la dernère semaine :53
En version supérieure je trouve :1

Faut il modifier un paramètre de config ?.

Merci d'avance.
LYPACAN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 12h08   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Non, il ne faut pas travailler avec des versions de PHP qui sont vieilles de 6 ans.


Il y a eu plusieurs bugs corrigés sur date("W") pendant ces 6 années.
En particulier pour ton cas :
http://bugs.php.net/bug.php?id=20363
Mais aussi :
http://bugs.php.net/bug.php?id=18770
http://bugs.php.net/bug.php?id=33957
http://bugs.php.net/bug.php?id=34302
etc.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h03.


 
 
 
 
Partenaires

Hébergement Web