IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] numéro de la dernière semaine de l'année


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 11
    Points
    11
    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 ..

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    PHP utilise la norme ISO-8601 et termine donc son année avec une éventuelle semaine 53.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Il manque une virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $lasweek =date("W",mktime(0,0,0,12,31,2008));
    Ce dernier donne 1, ce qui est coorect.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    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.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    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.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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.

Discussions similaires

  1. Réponses: 12
    Dernier message: 23/05/2012, 18h08
  2. Réponses: 3
    Dernier message: 18/03/2009, 15h47
  3. Réponses: 3
    Dernier message: 10/01/2008, 17h13
  4. Réponses: 2
    Dernier message: 16/11/2007, 16h30
  5. [Dates] numéro année + numéro semaine
    Par auduma dans le forum Langage
    Réponses: 3
    Dernier message: 10/01/2006, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo