Datum aus Text umwandeln.

  • Ok ich habe mal locker angefangen.

    Die ausgaben des echo sind folgendermaßen:

    13.08.2010 und 12811595590

    Also hat die generierung des Timestamps funktioniert.

    Fragen:
    Muss ich im Form jetzt wieder auf type text zurück oder kann ich date stehen lassen ?

    Wie bekomme ich das jetzt wieder aus der Datenbank in dem Format zurück, einfach mit date(d.m.Y) ?

  • Sorry ich habe dein Text erst gelesen, als ich meinen Beitrag reingestellt habe. :)

  • Warum kann ich jetzt nicht ein beliebiges Datum wählen, er nimmt immer das aktuelle Datum, ich krieg hier schon ein an der Murmel :D.

    Liegt es jetzt an mktime oder warum klappt das nicht.

    P.S bandit600: Ich habe mir das durchgelesen, aber weiterhelfen konnte mir der Beitrag auch nicht, irgendwie geht es da um das sortieren, doch soweit bin ich doch noch gar nicht :?.

  • P.S bandit600: Ich habe mir das durchgelesen, aber weiterhelfen konnte mir der Beitrag auch nicht, irgendwie geht es da um das sortieren, doch soweit bin ich doch noch gar nicht :?.


    Och büdde!!! Da geht es doch auch darum, dass das Datum als Text vorliegt und es geht darum, dieses "Text"-Datum in ein "MySQL"-Datum zu konvertieren. Das Sortieren ist doch nur die Folge von der ganzen Aktion!!!

  • Jo, habe ich gelesen.

    Doch das Feld Datum hat doch den Typ "date".

    Das ist doch auch hier eine Testumgebung, in der ich das richtig zum laufen bringen möchte.

    Die andere Datenbank hat vchar und ist mit Textdatum versehen. Die werde ich ohnehin zerschiessen, das ist mir schon klar. Doch will ich dann beim wiederaufbau gleich mit der richtigen Methode rangehen.

  • Du Kumpel, mir is was nicht klar:
    Was ist jetzt eigentlich noch dein Problem??

    Ich rat dir dazu:
    Mach ein Feld mit dem Typ INTEGER und mach einfach den Timestamp da rein.
    Das macht kaum Probleme und kann überall verwendet werden.

  • Macht mich nicht fertig :D.

    Das Problem ist doch nun folgendes:

    Er schreibt anstelle des von mir eingegebenen Datum 15.08.2010, das Datum 12.08.2010, also das heutige Datum.

    Das ist mein Problem ! Ich möchte das Datum selbst definieren !

    Das reinschreiben und auslesen ist nicht (mehr) das Problem.

  • Er schreibt anstelle des von mir eingegebenen Datum 15.08.2010, das Datum 12.08.2010, also das heutige Datum.


    Dann wird wohl ein Fehler im Script sein.

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Du Kumpel, mir is was nicht klar:
    Was ist jetzt eigentlich noch dein Problem??

    Ich rat dir dazu:
    Mach ein Feld mit dem Typ INTEGER und mach einfach den Timestamp da rein.
    Das macht kaum Probleme und kann überall verwendet werden.

    Nenne mir mal bitte einen Vorteil den es hat ein Datum in der Datenbank in einem Integer-Feld zu speichern, statt die vorgesehenen Feldtypen wie date/datetime/time/timestamp zu nehmen.

    Ich nenne hier schonmal die Vorteile der vorgesehenen Datentypen:
    1. Es können die SQL-eigenen Datumsfunktionen verwendet werden um direkt beim Auslesen die Daten in eine passende Form zu bringen/zu rechnen oder sonstwas. Das ist performanter als einen Unix-Timestamp auszulesen und die Umwandlungen/Berechnungen von PHP vornehmen zu lassen, da SQL klar schneller als PHP ist. Nur weil man vielleicht mit PHP schon weiß wie man das macht und die Datumsfunktionen von SQL eventuell nicht kennt, heißt das noch nicht, dass es sinnvoller ist den Unix-Timestamp zu speichern.
    2. Bessere Lesbarkeit der Daten in der DB.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Hat sich erledigt, ich bekomme in mktime einefach die Zuordnung zu den Variablen nicht hin. Mache es jetzt manuell.

    Danke an alle.

    Einmal editiert, zuletzt von Hauer (12. August 2010 um 19:50)