kills Geschrieben 14. April 2003 Geschrieben 14. April 2003 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; Zitieren
jomama Geschrieben 15. April 2003 Geschrieben 15. April 2003 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] Zitieren
kills Geschrieben 15. April 2003 Autor Geschrieben 15. April 2003 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? ;-) Zitieren
jomama Geschrieben 15. April 2003 Geschrieben 15. April 2003 Dann musst du halt den Timestamp noch formatieren. Füge folgendes vor dem Return ein: $returndate=date('d.m.Y', $returndate); :uli Zitieren
kills Geschrieben 15. April 2003 Autor Geschrieben 15. April 2003 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 Zitieren
jomama Geschrieben 16. April 2003 Geschrieben 16. April 2003 Schau dir mal folgenden Link an: http://www.phptotal.de/forum.php4?ParentID=274 Zitieren
jomama Geschrieben 16. April 2003 Geschrieben 16. April 2003 :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? Zitieren
kills Geschrieben 17. April 2003 Autor Geschrieben 17. April 2003 hi, ich hab den fehler behoben. lag an der php version. mit der neuen funzt es! danke für die hilfe kills Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.