[Funktion] Prüfung auf Gültigkeit eines Datumsfeldes

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Prüfung auf Gültigkeit eines Datumsfeldes

    Hallo @ll,

    gibt es eine Funktion in PHP etwa wie IsDate(expression) (=>VB/VBS).

    Ich habe schwierigkeiten mit Datumsfelder aus einer MS-SQL-7-Datenbank. Gespeichert als DateTime; der Query Analyser zeigt das Feld mit 2002-12.15 00:00:00.000 an. Das Feld per mssql_result($result,$i,$j) ausgelesen. Doch ich erhalte immer "Dez 15 2002" als String und deswegen scheitert die Funktion strtotime. Ich verwende keine setlocal im Script, weil es sowieso nicht funz.

    Wenn ich jedoch mit "isDate" abfangen kann, dann kann ich das Feld auch selbst einer eingenen Funktion übergeben, die dann die Formatierung vornimmt. Doch ...

    z.Z. habe ich das Feld per SQL-Command in 3 Teilen aufgeteilt und manuell wieder zusammengesetzt, aber das ist doch keine Lösung. Ich vermisse bei PHP die Bearbeitung/Überprüfung der Datumswerten, oder bin ich blind

    Bitte hilf mir, bin Anfänger in PHP und arbeite mit

    W2K Advance Server
    PHP 4.3.4 als Modul in
    Apache 2.0.48

  • #2
    Ein Blick ins PHP Manual zeigt, welche Datums- und Zeitfunktionen vorhanden sind:

    checkdate -- Prüft ein gregorianisches Datum auf Gültigkeit
    date -- Formatiert ein(e) angegebene(s) Zeit/Datum
    getdate -- Gibt Datums- und Zeitinformationen zurück
    gettimeofday -- Gibt die aktuelle Zeit zurück
    gmdate -- Formatiert eine GMT/UTC Zeit- Datumsangabe
    gmmktime -- Gibt einen UNIX-Timestamp (Zeitstempel) für ein GMT Datum zurück
    gmstrftime -- Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
    localtime -- Ermittelt die lokalen Zeitwerte
    microtime -- Gibt den aktuellen UNIX-Timestamp/Zeitstempel in Mikrosekunden zurück
    mktime -- Gibt den UNIX-Timestamp/Zeitstempel für ein Datum zurück
    strftime -- Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
    strtotime -- Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um.
    time -- Gibt den gegenwärtigen UNIX-Timestamp/Zeitstempel zurück

    Also gibt es so eine Funktion (momentan) nicht. Deswegen ist es das beste sie sich selbst zu schreiben.

    Kommentar


    • #3
      vielen Dank für die Antwort.

      Jetzt erinnere ich mich warum ich bisher immer PHP vermieden habe

      Kommentar


      • #4
        ist soweit ich weiß doch eigentlich einfacher, wenn auch teilweise sicher nicht ganz so komfortabel.

        Kommentar


        • #5
          Jupp, da PHP sehr C++ und Java ähnelt, doch ich vermisse einige Bequemlichkeiten in anderen Scriptsprachen, aber egal, man (ich) muss eben durch . Habe PHP nur wegen PDF-Erzeugung genommen, da in ASP das Modul für den Server unbezahlbar ist

          Kommentar


          • #6
            Bist n du weiter gekommen - bei deinem Prob?

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Bist n du weiter gekommen - bei deinem Prob?
              Schon längst gelöst, Danke.

              Ich habe mir ein is_date() programmiert und das war's. Warum so und nicht per SQL wie bisher, ganz einfach, weil ich nicht weiss, wasfür Daten die User anfordern, ob es überhaupt ein Datumfeld vorkommt und so, das Ganze soll ja absolut dynamisch sein. Die PHP-Site bekommt ein Request von einer ASP-Site mit Infos über Datenfelder, Tabellenname, Eingrenzung für Where-Klausel etc., daraufhin erzeugt PHP ein PDF-Doku und sendet an ASP zurück. That's it.

              Kommentar


              • #8
                hört sich sinnvoll an

                Kommentar

                Lädt...
                X