Veröffentlicht 14. April 200322 j hi leute. ich habe das problem das ich der folgenden funktion meine kw und das jahr übergebe und diese gibt mir einen schönen datestring aus! nun ist irgendwo ein bug. wenn ich kw 53/2004 eingebe dann ist der datestring der gleiche als bei kw 1 /2004! sieht jemand den bug? gruss, kills function KWtoDate($kw, $jahr) { $tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr); switch(date("l", $tag_jahresbeginn)) { case "Monday" : $einige_tage = 4; break; case "Tuesday" : $einige_tage = 3; break; case "Wednesday" : $einige_tage = 2; break; case "Thursday" : $einige_tage = 1; break; case "Friday" : $einige_tage = 0; break; case "Saturday" : $einige_tage = 6; break; case "Sunday" : $einige_tage = 5; break; default : print "Fehler in Function KWtoDate!"; break; } $tage_bis_ziel_kw = ($kw - 1) * 7 + $einige_tage; $datum_in_ziel_kw = mktime(0, 0, 0, 1 , 1 + $tage_bis_ziel_kw, $jahr); $datum_anf_ziel_kw = mktime(0, 0, 0, 1 , 1 + $tage_bis_ziel_kw-4, $jahr); //print "KW $eingabe in diesem Jahr endet am : ". date ("l d F", $datum_in_ziel_kw); $ziel_tag = date("d", $datum_in_ziel_kw); $ziel_monat = date("m", $datum_in_ziel_kw); $ziel_jahr = date("Y", $datum_in_ziel_kw); $anf_tag = date("d", $datum_anf_ziel_kw); $anf_monat = date("m", $datum_anf_ziel_kw); $anf_jahr = date("Y", $datum_anf_ziel_kw); $Zieldatum = "$ziel_tag.$ziel_monat.$ziel_jahr"; $Anfdatum = "$anf_tag.$anf_monat.$anf_jahr"; echo "$Anfdatum - $Zieldatum"; return $Zieldatum;
15. April 200322 j Wie wärs damit? function KWtoDate($kw, $jahr) { $tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr); switch(date("l", $tag_jahresbeginn)) { case "Monday" : $einige_tage = 4; break; case "Tuesday" : $einige_tage = 3; break; case "Wednesday" : $einige_tage = 2; break; case "Thursday" : $einige_tage = 1; break; case "Friday" : $einige_tage = 0; break; case "Saturday" : $einige_tage = 6; break; case "Sunday" : $einige_tage = 5; break; default : print "Fehler in Function KWtoDate!"; break; } $returndate=$tag_jahresbeginn+(($kw-1)*7+$einige_tage)*86400; //ein Tag hat 86400 Sekunden. return $returndate; } [/PHP]
15. April 200322 j Original geschrieben von jomama Wie wärs damit? function KWtoDate($kw, $jahr) { $tag_jahresbeginn = mktime(0, 0, 0, 1, 1, $jahr); switch(date("l", $tag_jahresbeginn)) { case "Monday" : $einige_tage = 4; break; case "Tuesday" : $einige_tage = 3; break; case "Wednesday" : $einige_tage = 2; break; case "Thursday" : $einige_tage = 1; break; case "Friday" : $einige_tage = 0; break; case "Saturday" : $einige_tage = 6; break; case "Sunday" : $einige_tage = 5; break; default : print "Fehler in Function KWtoDate!"; break; } $returndate=$tag_jahresbeginn+(($kw-1)*7+$einige_tage)*86400; //ein Tag hat 86400 Sekunden. return $returndate; } [/PHP] [/b] jo is ja wunerbar aber wo is der datumsstring den ich eigentlich haben wollte? ;-)
15. April 200322 j Dann musst du halt den Timestamp noch formatieren. Füge folgendes vor dem Return ein: $returndate=date('d.m.Y', $returndate); :uli
15. April 200322 j Original geschrieben von kills function KWtoDate($kw, $jahr) { echo "$Anfdatum - $Zieldatum"; [/PHP] [/b] ich meine ja das ich oben einen datumstring ausgebe den ich ja bei dir gar nicht im source habe. ausserdem wollte ich ja wissen wo der bug drinn ist. gruss kills
16. April 200322 j :confused: Also ich hab das mal bei mir probiert, und bei mir kommt bei 53/2004 und 1/2004 nicht das selbe raus. 1/2004 => 29.12.2003 - 02.01.2004 53/2004 => 27.12.2004 - 31.12.2004 Kann das an deiner PHP-Version liegen?
17. April 200322 j hi, ich hab den fehler behoben. lag an der php version. mit der neuen funzt es! danke für die hilfe kills
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.