Version complète: sur le forum Webmaster Hub : Fonction strtotime() sous PHP
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
petit-ourson
Bonjour,

http://fr3.php.net/manual/fr/function.strtotime.php

Je cherche à obtenir à partir de la fonction strtotime() le premier jeudi du mois suivant.

Donc par exemple, il faudrait que je tombe sur le 04 mai tout au long du mois d'avril, puis le 1 juin tout au long du mois de mai, etc, etc.

Ca doit être quelques chose qui ressemble à cela, mais j'arrive pas à me fixer au début du mois ;-(

strtotime(+ 1 month first thursday)

Merci d'avance ;o)
NorSeb
Salut,

Ta question est pour le moins originale... Tu as essayé "next month first thursday" ?
TheRec
Bonjour,

CODE
<?php echo date("Y-m-d",strtotime("+1 month thursday",strtotime(date("Y-m-01 00:00:00")))); ?>

Ceci devrait convenir... d'après le manuel de GNU il est mieux de définir l'heure à une valeur fixe car des problèmes de décalage peuvent apparaître lorsque la date coïncide avec les changements d'heure d'hiver/été (DST)...

**EDIT** Je te laisse enlever la fonction "date" si tu veux utiliser le timestamp directement wink.gif
petit-ourson
CITATION(NorSeb @ mercredi 12 avril 2006, 13h54)
Salut,

Ta question est pour le moins originale... Tu as essayé "next month first thursday" ?
*


Ca me sort le 15/06/2006 alors que "+ 1 month first thursday" s'approcherai plus du bon résultat soit le 18/05/2006.

En fait il ajoute un mois (12 mais) et cherche le premier jeudi après cette date.
petit-ourson
CITATION(TheRec @ mercredi 12 avril 2006, 13h55)
Bonjour,

CODE
<?php echo date("Y-m-d",strtotime("+1 month thursday",strtotime(date("Y-m-01 00:00:00")))); ?>

Ceci devrait convenir... d'après le manuel de GNU il est mieux de définir l'heure à une valeur fixe car des problèmes de décalage peuvent apparaître lorsque la date coïncide avec les changements d'heure d'hiver/été (DST)...

NorSeb> "next" n'est (malheureusement) pas une valeur acceptée par GNU comme élément relatif pour définir une date...

**EDIT** Je te laisse enlever la fonction "date" si tu veux utiliser le timestamp directement wink.gif
*


oui il y a cette solution mais j'essaie de voir si il n'y a pas une solution sans être obligé de redefinir une date.

Je comptais stocké "+1 month thursday" dans ma base et utiliser uniquement la date du jour car peut être que pour certains enregistrments ca sera juste "+2 weeks", ou "+2 days" ou ...
Dan
CODE
print strftime("%A, %d/%m/%Y",strtotime("next month first thursday",mktime(0,0,0,strftime("%m"),1,strftime("%Y"))));


wink.gif Dan
TheRec
Tu ne redéfini pas la date...mais le référentiel pour effectuer le calcul... si tu fais "+1 month" à une date, par exemple le 31 janvier, si tu es dans une année bissextile tu obtiendra le 2 mars...si c'est une année normale tu obtiendra le 3 mars... car il calcul le 31 février, qui n'existe pas et utilise la différence par rapport au dernier jour du mois... d'où la nécessité de fixé le début du mois qui est commun à tous les mois...
petit-ourson
oui un jour (et le mois et année de la date du jour) de référence dans le cas où j'utilise les mois et si j'utilise des jours et des semaines, j'utilise la date du jour...

Bah je suis déçu de cette fonction ;-(
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.