phpbar.de logo

Mailinglisten-Archive

[php] Montagsdatum einer Kalenderwoche bestimmen

[php] Montagsdatum einer Kalenderwoche bestimmen

Andre Gemünd listen at scroogie.de
Mit Dez 17 15:00:22 CET 2003


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