Fabienne: Datum aus String auslesen

Hallo zusammen,

ich stehe gerade vor folgendem Problem:
Ich erwarte eine Benutzereingabe der folgenden Formen:

2006-11-18 18:11:59
20061118181159
18.11.2006 18-11-59
18112006 181159
...

Alles für den logisch denkenden MEnschen kein Problem das Datum und die Uhrzeit zu erkennen.
Gibt es eine ähnliche Funktion in PHP (wie z.B. strtotime), die sämtliche Eingaben z.B. in ein Array einliest?
Hat jemand Ideen, wie ich das am besten angehe?

Viele Grüße
Fabienne

  1. Hi there,

    ich stehe gerade vor folgendem Problem:
    Ich erwarte eine Benutzereingabe der folgenden Formen:

    2006-11-18 18:11:59
    20061118181159
    18.11.2006 18-11-59
    18112006 181159

    Ich denke, prinzipiell wirst Du das nur lösen können, wenn Du das Eingabefeld auflösen kannst und nur eine getrennte Eingabe für tag, monat und jahr zulässt. Wenn Du diese Kontrolle über die Eingabe nicht hast, kannst Du nur versuchen, anhand bestimmter Werte zu erraten, was denn gemeint war, das ist aber vor allem für Werte nach 2000 ein sehr fragwürdiges Verfahren und nicht zu empfehlen. Bei 181159 ist die Bestimmung sehr einfach, aber was machst Du mit 020304?

    1. Hi,

      aber was machst Du mit 020304?

      Jop. Genau das ist ein Problem.
      Vielleicht noch der Hintergrund für was das Ganze:
      Ich baue gerade eine Auto-Galerie, die nach dem Datum (datetime) der DB sortiert werden soll. Und genau dieses datetime soll auf dem Dateinamen erraten werden, sofern möglich. Und dabei ist mir aufgefallen, dass fast alle Programme die Dateien unterschiedlich umbenennen....

      Für weitere Ideen bin ich sehr dankbar!

      Viele Grüße
      Fabienne

      1. Hi there,

        Ich baue gerade eine Auto-Galerie, die nach dem Datum (datetime) der DB sortiert werden soll. Und genau dieses datetime soll auf dem Dateinamen erraten werden, sofern möglich. Und dabei ist mir aufgefallen, dass fast alle Programme die Dateien unterschiedlich umbenennen....

        Was für Programme? Woher bekommst Du die Daten?

        1. Re Hi,

          Was für Programme? Woher bekommst Du die Daten?

          Digi-Fotos, die anschließend nach dem Erstelldatum umbenannt wurden:
          z.B. AcdSee, Finepix-Viewer,.....

          Viele Grüße
          Fabienne

          1. Hi there,

            Was für Programme? Woher bekommst Du die Daten?
            Digi-Fotos, die anschließend nach dem Erstelldatum umbenannt wurden:
            z.B. AcdSee, Finepix-Viewer,.....

            und wenn ich Dich richtig verstanden habe ist Dein Problem das unterschiedliche Datumsformat, das diese Programme erzeugen? Vor allem, wo steht das Datum und und warum nimmst Du nicht das Datum der Datei selbst oder gibst Du der Datei einfach das Datum, das Dir genehm ist? Dann hast Du immer das gleiche Datumsformat...

            1. Re hi,

              Dann hast Du immer das gleiche Datumsformat...

              Ja, aber dann muss ich das Datum von Hand eintragen.
              Die Programme benennen die Dateien nach der Erstellungszeit um.

              Viele Grüße
              Fabienne

      2. Ich baue gerade eine Auto-Galerie, die nach dem Datum (datetime)
        der DB sortiert werden soll. Und genau dieses datetime soll auf dem
        Dateinamen erraten werden, sofern möglich.

        Sofern Du Zugriff auf die Bilder hast, könntest Du Dein Glück mit den
        Dateizeitfunktionen von PHP versuchen; z.Bsp: filectime(), siehe
        http://www.php.net/manual/en/function.filectime.php

  2. Hallo zusammen,

    ich stehe gerade vor folgendem Problem:
    Ich erwarte eine Benutzereingabe der folgenden Formen:

    2006-11-18 18:11:59
    20061118181159
    18.11.2006 18-11-59
    18112006 181159

    Könnte mir nur vorstellen das mit substr oder so zu lösen, inkl. reg expressions.
    Als erstes prüfst du, ob Doppelpunkte drin sind. Wenn ja, sind die letzten 8 Zeichen die Uhrzeit. Wenn keine Sonderzeichen drin sind, sind die letzten 6 Zeichen die Uhrzeit. Bei Punkten sind die ersten 10 Zeichen das Datum. Bei Bindestrichen prüfst du, ob in den 3 Letzten oder den 3 ersten Zeichen ein Bindestrich ist. Wenn es bei den 3 ersten ist, sind wieder die ersten 10 Zeichen das Datum, ansonsten die 8 letzten die Zeit.

    Naja, so ungefähr :)

    1. Bei Bindestrichen prüfst du, ob in den 3 Letzten oder den 3 ersten Zeichen ein Bindestrich ist.

      Die letzten 3 oder die ersten 5 natürlich :)

      1. Hi Siddy,

        Die letzten 3 oder die ersten 5 natürlich :)

        Ja, ich denke darauf wird es hinauslaufen.
        Ich muss die Denkweise des Menschen "imitieren" und versuchen das Ganze in Code zu packen (was nicht ganz trivial ist!)

        Viele Grüße
        Fabienne