Ergebnis 1 bis 4 von 4
  1. #1
    DejanX ist offline Mitglied
    registriert
    15-06-2000
    Beiträge
    29

    Datum formatieren

    Hi Leutz,
    ich habe schon wiedereinmal ein Problem.

    Wie ja bekannt, ist das Datumsformat in sql 2002-06-18.
    Ich möchte dieses Datum, das in der Datenbank gespeichert ist folgendermaßen ausgeben. 18.06.2002 .

    Auch wenn ich das Datum soll so ins Eingabefeld geschrieben werden.

    Jetzt meine Frage,
    wie kann ich denn das Datum so formatieren, dass es meinen Vorstellungen entspricht. Gibt es da eine funktion?

    Danke für Eure Hilfe.

    Dejavu

    Ps. Das Forum hier ist echt genial.

  2. #2
    style-guide! ist offline Lounge-Member
    registriert
    19-09-2001
    Ort
    /nrw/zuhaus
    Beiträge
    2.601
    Du kannst es einerseits direkt in der SQL Abfrage formatieren oder das ganze via PHP erledigen:

    1. Erledigung via SQL (DATE_FORMAT)

    DATE_FORMAT(datum,format)
    Formatiert den datum-Wert gemäß der format-Zeichenkette. Folgende Spezifikatoren können in der format-Zeichenkette benutzt werden: %M Monatsname auf englisch (January bis December)
    %W Name des Wochentags auf englisch (Sunday bis Saturday)
    %D Tag des Monats mit englischem Suffix (1st, 2nd, 3rd usw.)
    %Y Jahr, numerisch, 4 Ziffern
    %y Jahr, numerisch, 2 Ziffern
    %X Jahr der Woche, wobei Sonntag der erste Tag der Woche ist, numerisch, 4 Ziffern, benutzt mit '%V'
    %x Jahr der Woche, wobei Montag der erste Tag der Woche ist, numerisch, 4 Ziffern, benutzt mit '%v'
    %a Abgekürzter Name des Wochentags auf englisch (Sun..Sat)
    %d Tag des Monats, numerisch (00 bis 31)
    %e Tag des Monats, numerisch (0 bis 31)
    %m Monat, numerisch (01 bis 12)
    %c Monat, numerisch (1 bis 12)
    %b Abgekürzter Monatsname auf englisch (Jan bis Dec)
    %j Tag des Jahrs (001 bis 366)
    %H Stunde (00 bis 23)
    %k Stunde (0 bis 23)
    %h Stunde (01 bis 12)
    %I Stunde (01 bis 12)
    %l Stunde (1 bis 12)
    %i Minuten, numerisch (00 bis 59)
    %r Uhrzeit, 12-Stunden-Format (hh:mm:ss [AP]M)
    %T Uhrzeit, 24-Stunden-Format (hh:mm:ss)
    %S Sekunden (00 bis 59)
    %s Sekunden (00 bis 59)
    %p AM oder PM
    %w Wochentag (0=Sonntag bis 6=Samstag)
    %U Woche (0 bis 53), wobei Sonntag der erste Tag der Woche ist
    %u Woche (0 bis 53), wobei Montag der erste Tag der Woche ist
    %V Woche (1 bis 53), wobei Sonntag der erste Tag der Woche ist. Benutzt mit '%X'
    %v Woche (1 bis 53), wobei Montag der erste Tag der Woche ist. Benutzt mit '%x'
    %% Ein Literal `%'.
    Alle anderen Zeichen werden einfach ohne Interpretation ins Ergebnis kopiert:
    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W%M%Y');
    -> 'Saturday October 1997'
    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
    -> '22:23:00'
    mysql> select DATE_FORMAT('1997-10-04 22:23:00',
    '%D%y%a%d%m%b%j');
    -> '4th 97 Sat 04 10 Oct 277'
    mysql> select DATE_FORMAT('1997-10-04 22:23:00',
    '%H%k%I%r%T%S%w');
    -> '22 22 10 10:23:00 PM 22:23:00 00 6'
    mysql> select DATE_FORMAT('1999-01-01', '%X%V');
    -> '1998 52'
    http://www.mysql.de/documentation/my...time_functions

    2. Als Beispiel wenn du ein Datum auseinandernimmst, wenn die Zeit mit drin ist, muss das ein wenig ergänzt werden...

    $datum = explode("-",$row["datum"]);

    echo $datum[2].".".$datum[1].".".$datum[0];

  3. #3
    style-guide! ist offline Lounge-Member
    registriert
    19-09-2001
    Ort
    /nrw/zuhaus
    Beiträge
    2.601
    Bei der Eingabe würde ich empfehlen, das ganze über Select Menü's zu machen, eines für Tage, eins für den Monat und eins für das Jahr. Dann ist dem Benutzer das Format egal und du musst nicht soviel Fehler abfangen und korrigieren!

  4. #4
    digleu ist offline Kaiser
    registriert
    05-10-2001
    Beiträge
    1.063
    es ist dem benutzer aber immernoch möglich die (falschen) datumseingaben in die URL zu machen. Daher würde ich sie immernoch abfangen ... zum schreiben dieser Listenfelder hätte ich hier ein paar funktionen:
    PHP-Code:
    function listbox_date ($name$default=0) {
       
    $result="<select name=\"$name\" size=1>\n";
       for (
    $d=1;$d<=31;$d++) {
          if (
    $default  == $d) {$selected="selected";} else {$selected="";}
          
    $result.="<option value=\"$d\" $selected>$d</option>\n";
       }
       
    $result.="</select>\n";
       return 
    $result;
    }
    function 
    listbox_month ($name$default=0) {
        
    $result="<select name=\"$name\" size=1>\n";
        for (
    $m=1;$m<=12;$m++) {
            if (
    $default  == $m) {$selected="selected";} else {$selected="";}
            
    $result.="<option value=\"$m\" $selected>".date("M"mktime(0,0,0,$m,1,2000))."</option>\n";
        }
        
    $result.="</select>\n";
       return 
    $result;
    }
    function 
    listbox_year ($name$start$end$default=0) {
       
    $result="<select name=\"$name\" size=1>\n";
       for (
    $y=$end;$y>=$start;$y--) {
           if (
    $default  == $y) {$selected="selected";} else {$selected="";}
           
    $result.="<option value=\"$y\" $selected>$y</option>\n";
       }
       
    $result.="</select>\n";
       return 
    $result;

    und dann einfach mit z.B.
    echo(listbox_year("birth_year",1900,1999,1985));
    aufrufen

    mfg digleu

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •