2009-07-21 5 views
6

Comment trouver l'horodatage unix de minuit du mercredi précédent? Ma seule approche serait d'obtenir l'indice du jour et le numéro du jour d'aujourd'hui, et de soustraire la différence, mais je peux penser à plusieurs scénarios où cela échouerait, par exemple, au début d'un mois avant un mercredi.Récupère l'horodatage unix de minuit le mercredi précédent

Je suppose, de façon plus concise, comment puis-je trouver la date du mercredi précédent?

Toute aide serait appréciée.

+0

Vous cherchez minuit, heure locale, ou minuit UTC? –

Répondre

5

Qu'en est-il strtotime?

$timestamp = strtotime("last Wednesday"); 

var_dump($timestamp); 
var_dump(date('Y-m-d H:i:s', $timestamp)); // to verify 

Et vous obtenez cette sortie:

int 1247608800 
string '2009-07-15 00:00:00' (length=19) 

qui est en effet mercredi dernier, à minuit.

4

Il est plus facile que vous pourriez penser ... observer la puissance de feu impressionnante de cette pleinement opérationnelle station de combat , euh, je veux dire strtotime

$t=strtotime("last wednesday"); 

echo strftime("%d %b %Y %H:%M:%S", $t); 

Affichera

15 Jul 2009 00:00:00 

qui, au moment de l'écriture, est mercredi dernier :)

0

Comment "correct" voulez-vous être? Si vous voulez être très correct, vous devez tenir compte de l'heure avancée, des fuseaux horaires, des années bissextiles, etc. Cela signifie utiliser une bibliothèque et pas seulement soustraire les index de jour.

Je ne suis pas en train de faire PHP mais je l'habitude d'avoir une bonne chance avec les bibliothèques de poires: ici le docs pour la classe Calendrier

Questions connexes