Mailinglisten-Archive |
Ringo Großer wrote:
> hol dir den wochentag des 4. januar
>
> date('w',strtotime('2004-04-01');
>
> und falls das nicht schon der montag (1) ist
> mach aus dem datum einen time wert, und zieh die differenz bis zum vorigen
> montag in sekunden ab. dann aus dem time wert wieder ein datum machen.
Ja, so ähnlich versuche ich das auch, aber irgendwo muss der Fehler
stecken. Vielleicht siehst Du ihn ja auf Anhieb?
$ja = mktime(1,1,1,1,1,$jahr); //ja = jahresAnfang
$wtja = date("w", $ja); //wt = wochenTag
$wtja = ($wtja == 0) ? 7 : $wtja; //wtja = wochenTag jahresAnfang
switch ($wtja) {
case 1:
$offset = 0; //offset zum Montag
break;
case 2:
$offset = -1;
break;
case 3:
$offset = -2;
break;
case 4:
$offset = -3;
break;
case 5:
$offset = 3;
break;
case 6:
$offset = 2;
break;
case 7:
$offset = 1;
break;
}
if ($offset < 0) { //Montag liegt im Vorjahr
$mt = 12;
$dt = 31+$offset;
$ja = $jahr-1;
} else {
$mt = 1;
$dt = (1+$offset)+7*($kw-1);
$ja = $jahr;
}
$startdatum = mktime(1,1,1,$mt,$dt,$ja);
$enddatum = mktime(1,1,1,$mt,$dt+6,$ja);
> details findest du in den datumsfunktionen im handbuch.
> http://de3.php.net/manual/en/ref.datetime.php
Ja, das war mir bekannt.
> regards, Ringo
Danke schonmal,
André
php::bar PHP Wiki - Listenarchive