Autor Zpráva
lukas456
Profil *
Jak v PHP nejelegantneji vypocitat datum pocatku (PO) a konce (PA) tydne, kdyz znam cislo tydne ($week_nr) a rok ($year).
Zkousel jsem to pocitat, tak ze si najdu 1.1.$year, pak z toho vypoctu pondeli a pak pricitam 7 * $week_nr, ale nejak mi to faliruje o 1 (resp. v 2006 to fungovalo a ted uz ne :-( ).
Jak to lze udelat elegantneji?

Moje (ne moc dobry) reseni.

$week_nr = ...;
$year = ...;

$y = (date("w", mktime(0,0,0,1,1,$year)) + 6) ; // den v tydnu, kdy je 1.1. - 0 = po, 6 = ne
$week_from = date ("j.n.Y", mktime (0,0,0, 1, (1-$y)+($week_nr*7), $year)); // datum PO v tydnu $week_nr
$week_to = date ("j.n.Y", mktime (0,0,0, 1, (1-$y)+($week_nr*7)+6, $year)); // datum NE v tydnu $week_nr

echo "$week_from - $week_to";
PP
Profil *
Celkom ma to zaujalo a trochu som experimentoval, pričom som narazil na hotove riešenie. Vracia kompletný dátum.
function get_week_range($week, $year) {
$first_monday = (8 - date("w", mktime(1,0,0,12,31,$year -1))) % 7;
if ($first_monday == 0) $first_monday = 7;
$fm_ts = mktime(1,0,0,1,$first_monday,$year);

$monday = strtotime('+'.($week - 1).' week', $fm_ts);
$sunday = strtotime('+6 days', $monday);

$start = date("Y-m-d", $monday);
$end = date("Y-m-d", $sunday);

return array($start, $end);
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0