Salut !
Merci bien !
Tu as bien compris, sauf que le truc parfait serai le mélange des deux. c.a.d selon la date du jour, il décide si le prochain second mardi est ce mois-ci OU le mois prochain.
J'ai donc modifié comme cela :
echo 'Le Prochain deuxième Mardi à venir est le : ';
if( date("Y-m-d") <= ($mardi = strftime('%Y-%m-%d', strtotime('Second Tuesday', mktime(0, 0, 0, date('m'), 1, date('Y'))))))
// si la date actuelle n'a pas encore dépassé le prochain second mardi du mois en cours (= on est au début du mois) on affiche le second mardi qui arrivera dans qq jours
echo $mardi;
else
// sinon, nous sommes entre le milieu et la fin du mois = le second mardi du mois en cours est passé, nous affichons alors le second mardi du mois prochain :
echo strftime('%Y-%m-%d', strtotime('Second Tuesday', mktime(0, 0, 0, date('m')+1, 1, date('Y'))));
Ca marche bien, nous sommes le mercredi 10 juin, le second mardi du mois de juin était hier.
Il m'affiche donc :
Le Prochain deuxième Mardi du mois est le : 2009-07-14

En tout cas merci pour strtotime('Second Tuesday',..) que je ne connaissais pas !! Je suis surpris de voir que PHP peut générer une date avec des mots du langage.. bien joué.
--------------------
Sinon, avant de voir ton message j'avais réussi à le faire avec un code différent.
Je le poste où cas où ca pourait aider.
Je me servi de date("N") qui permet d'avoir le jour de la semaine : N=2 pour mardi donc.
Algo : j'itère sur la génération de date des 30 jours du mois, quand je tombe sur N=2 (mardi) j'enregistre la date dans un tableau, la tableau contient donc 4 dates pour les 4 mardi. Ensuite je n'ai plus qu'a prendre le second élément du tableau pour avoir le second mardi. Avec idem, la vérification sur la date du jour.
Ma méthode est moins joli, j'avoue

Le code :
$mardis = array();
for($i=1;$i<32;$i++){ // itération sur chaque jour du mois
if( date("N", mktime(0, 0, 0, date("m") , $i, date("Y"))) == 2){ // Si le jour est un mardi
$mardis[] = date("Y-m-d", mktime(0, 0, 0, date("m"), $i, date("Y"))); // on stocke cette date
}
}
// on a les 4 mardis du mois en cours.
// verification si on a pas dépassé le second mardi :
if( date("Y-m-d") > $mardis[1]){ // on l'a passé.. on refait la meme chose mais sur le mois prochain
$mardis = array();
for($i=1;$i<32;$i++){
if( date("N", mktime(0, 0, 0, date("m")+1 , $i, date("Y"))) == 2)
$mardis[] = date("Y-m-d", mktime(0, 0, 0, date("m")+1, $i, date("Y")));
}
echo $mardis[1];
}
else // on est au début du mois
echo = $mardis[1];
Ca marche aussi bien mais ce n'est bien sur pas optimisé
@+