witch doctor Geschrieben 1. November 2006 Geschrieben 1. November 2006 Hallo, ich habe ein kleines Programm in PHP geschrieben, womit man Fragebögen erstellen kann. Jetzt gibt es im Administrationsmenü auch eine Möglichkeit diese auswerten zu lassen. Dazu gehört auch eine Möglichkeit verschiedene Perioden zu betrachten. In der ersten Maske wird also die Kategorie angegeben, die betrachtet werden soll und die Periode, also von bis wann das ganze betrachtet werden soll. Das sollte auch kein Problem darstellen, dachte ich. Beim Ausfüllen des Fragebogens wird das aktuelle Datum in der Form Jahr-Monat-Tag in der Datenbank gespeichert. Jetzt soll das Auswertungsprogramm die Ergebnisse die Nach dem bzw. genau an dem Von Datum und die vor bzw. genau an dem Bis Datum entstanden sind liefern. Jetzt gibt es ein Problem mit der Datumsfunktion, welches ich nicht verstehe. Ich wandel das Datum, welches in der Maske eingegeben wurde folgendermaßen um: $timestamp=strtotime($jahrvon.$monatvon.$tagvon); $von = date("Y-m-d",$timestamp); $timestamp=strtotime($jahrbis.$monatbis.$tagbis); $bis = date("Y-m-d",$timestamp);[/php] Das $von Datum wandelt er nocht korrekt um, allerdings nicht das $bis Datum. Dort kommt immer das Ergebnis 1970-01-01. Ich weiß nicht, was ich da falsch gemacht habe. Ich hoffe, ihr könnt mir helfen. Zitieren
el_pollo_diablo Geschrieben 1. November 2006 Geschrieben 1. November 2006 Das $von Datum wandelt er nocht korrekt um, allerdings nicht das $bis Datum. Dort kommt immer das Ergebnis 1970-01-01. Ich weiß nicht, was ich da falsch gemacht habe. Ich hoffe, ihr könnt mir helfen. lass dir bitte die inhalte folgender variablen: $timestamp $jahrbis $monatbis $tagbis nach der codezeile $timestamp=strtotime($jahrbis.$monatbis.$tagbis); ausgeben und poste sie hier. interessant wäre auch, ob vorher noch etwas mit den datumsvariablen gemacht wird. Zitieren
Grandmasta Geschrieben 1. November 2006 Geschrieben 1. November 2006 Schon mal geguckt, ob beim zweiten Datum die Variablen auch korrekt gefüllt sind? Wahrscheinlich nicht. Gib die einzelnen Strings doch mal mit "echo" aus. Und warum eigentlich so kompliziert? $von = $jahrvon."-".$monatvon."-".$tagvon; $bis = $jahrbis."-".$monatbis."-".$tagbis; [/PHP] Zitieren
witch doctor Geschrieben 2. November 2006 Autor Geschrieben 2. November 2006 lass dir bitte die inhalte folgender variablen: $timestamp $jahrbis $monatbis $tagbis nach der codezeile $timestamp=strtotime($jahrbis.$monatbis.$tagbis); ausgeben und poste sie hier. interessant wäre auch, ob vorher noch etwas mit den datumsvariablen gemacht wird. Hi, danke für die schnellen Antworten. Ich glaube, dass die Variablen korrekt gefüllt sind. Als Eingabe habe ich den 1.11.2006 gewählt, also Jahr=2006, Monat=11 und Tag=1. Die Ausgabe ist folgende: 2006 für $jahrbis 11 für $monatbis 1 für $tagbis Also korrekt. Für $timestamp bekomme ich allerdings -1 zurückgeliefert. Und warum eigentlich so kompliziert? Ich weiß ehrlich gesagt nicht, wie es anders geht. Bin also für eine weniger komplizierte Lösung immer dankbar. Edit: Kann es daran liegen, dass ich bei den Zahlen 1-9 keine vorangehende 0 stehen habe? Mir ist aufgefallen, dass der Fehler auch bei $von auftritt, aber nur, wenn ich eine Zahl <10 wähle. Zitieren
witch doctor Geschrieben 2. November 2006 Autor Geschrieben 2. November 2006 Es fehlte die vorangehende Null bei den Werten. Jetzt funktioniert es. Danke! Zitieren
el_pollo_diablo Geschrieben 2. November 2006 Geschrieben 2. November 2006 Edit: Kann es daran liegen, dass ich bei den Zahlen 1-9 keine vorangehende 0 stehen habe? Mir ist aufgefallen, dass der Fehler auch bei $von auftritt, aber nur, wenn ich eine Zahl <10 wähle. yup, daran liegt es... habe gar nicht an sowas gedacht. also musst du nur deinen string entsprechend formatieren und alles sollte wie gewünscht funktionieren. Zitieren
witch doctor Geschrieben 2. November 2006 Autor Geschrieben 2. November 2006 Es funktioniert. Dass eine vorangestellte Null benötigt wird, wusste ich nicht, aber man lernt ja nie aus. 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.