This can be easily solved with DateTime::setISODate()
method:
$week = 50;
$dt = new DateTime();
$dt->setISODate($dt->format('o'), $week, 7);
echo $dt->format('Y-m-d');
Or you can just create DateTime
object (or unix timestamp with strtotime()
) with ISO-8601 format like 2014-W50-7
:
$week = 50;
$iso = sprintf("2014-W%02d-7", $week);
$dt = new DateTime($iso);
echo $dt->format('Y-m-d');
echo date('Y-m-d', strtotime($iso)); # or using strtotime()