2009-09-09 8 views

Répondre

2
<?php 
$date = new DateTime('2009W52'); 
echo $date->format(DateTime::RFC850); 

qui sort

Monday, 21-Dec-09 00:00:00 EET 

et vous pouvez le modifier comme

$date->modify("last monday"); 
$date->modify("next monday"); 

semaine doit être zéro rembourré pour les semaines 1-9

0

Je sais que vous avez déjà accepté une réponse, mais je pense que ce peu de code est également utile.

$year = date("Y"); 
$week = date("W"); // Can be replaced with '42' for your example. 
$start = strtotime($year.'W'.$week.'1'); 

Ceci retournera un horodatage unix que certaines personnes trouveront plus facile à manipuler.

Vous pouvez également utiliser ceci pour PHP 5.1 et supérieur.

$start = date(datetime::ISO8601, strtotime("2009W421")); 

En utilisant la méthode ci-dessus, vous pouvez facilement la formater.

Espérons que cela soit utile à quelqu'un.

-Mathew

+0

date() a des limitations comme ne peut pas dépasser 1970-01-01. La classe DateTime intégrée corrige la majorité de ces types de problèmes. – raspi

+0

Voulez-vous dire en dessous de 1970? Merci pour le commentaire, j'ai appris quelque chose de nouveau aujourd'hui. –

+0

Ouais, je voulais dire ci-dessous :) – raspi

Questions connexes