2009-06-12 7 views
3

Je travaille sur un script de calendrier où dans je dois répéter un événement de calendrier comme « Répéter tous les 1er mardi de chaque mois »Comment déterminer le n-ième semaine d'une date donnée en php

Dans le exemple ci-dessus. Comment obtenez-vous le "1er"? Par exemple, aujourd'hui, c'est le 12 juin 2009, cela signifie que c'est le «2e vendredi de juin». Comment puis-je obtenir le «2e»?

Merci à l'avance

Répondre

16

diviser par 7 et arrondissez:

ceil(date('j')/7); 
+0

Heh J'essayais de penser à la façon de résoudre ce problème. Cela ne m'est pas venu à l'esprit. Propre, élégant, +1. – cletus

+1

haha ​​ouais, ça m'a pris une minute et puis je me suis dit "oh, bien sûr!" – nickf

+2

Rappelez-vous également que cette date prend un deuxième paramètre optionnel (horodatage), donc cette solution pourrait être réutilisée pour une date arbitraire. – PatrikAkerstrand

3

Cela fonctionne:

<?php 

$date = date('Y-m-d', mktime(0, 0, 0, date('m'), 1, date('y'))); 

echo date('Y-m-d', strtotime($date.'next tuesday')); 

?> 

La première ligne crée une date des thats le premier jour de ce mois-ci. La deuxième ligne reçoit le mardi suivant de $ date. Vous pouvez faire beaucoup plus voir date et mktime et strtotime.

+0

vous faites l'inverse de ce que le PO demande. Compte tenu d'une date, dites-moi combien de vendredis (ou quoi que ce soit) il y a eu avant ce mois-ci, pas quelle est la date du vendredi nième? – nickf

+0

+1 J'avais besoin de ceci =) – drikoda

Questions connexes