Aller au contenu

Fonction strtotime() sous PHP


petit-ourson

Sujets conseillés

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)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

<?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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

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

<{POST_SNAPBACK}>

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.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

<?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 ;)

<{POST_SNAPBACK}>

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 ...

Lien vers le commentaire
Partager sur d’autres sites

print strftime("%A, %d/%m/%Y",strtotime("next month first thursday",mktime(0,0,0,strftime("%m"),1,strftime("%Y"))));

;) Dan

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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 ;-(

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...