Autor | Zpráva | ||
---|---|---|---|
lukas456 Profil * |
#1 · Zasláno: 8. 3. 2007, 11:40:37
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 * |
#2 · Zasláno: 8. 3. 2007, 13:53:07
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); } |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0