Функция strtotime()
понимает тонкую грамматику для описания времени.
<?php
date_default_timezone_set("America/Toronto");
$week_number = '13';
$year = '2012';
$epoch_start = strtotime($year . "0101 + " . $week_number . " weeks - 6 days");
$epoch_end = strtotime($year . "0101 + " . $week_number . " weeks");
print "Start: " . strftime("%Y-%m-%d", $epoch_start) . "\n";
print " End: " . strftime("%Y-%m-%d", $epoch_end) . "\n";
?>
Обратите внимание, что strtotime()
, кажется, считает полных недель, начиная спо воскресеньямПоэтому 1 января 2011 года можно было бы считать «нулевой неделей» этого года.
YMMV.Соль по вкусу.