Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Like Tree1Danke
  • 1 Beitrag von Flex
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
324
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Guten Abend!

    Mir wird ein Datum, welches ich nicht ändern kann folgendermaßen ausgegeben:

    10/5/2009 2:18:00 AM

    Dieses möchte ich aber nun im Format:

    05.10.2009

    Habt ihr einen Vorschlag wie man das vernünftig umkonvertieren kann, ohne den String zu beschneiden?
     

  2. #2
    Registriert seit
    Mar 2004
    Beiträge
    1.853
    Blog-Einträge
    2
    Geändert von ZodiacXP (06.10.09 um 22:58 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  3. #3
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Das habe ich leider übersehen gehabt !?

    Und was mache ich nun aus der Variable?

    PHP-Code:
    $date date_parse_from_format "n.j.Y g:i:s A",  $shop ['LastUpdate'] ); 
    Es bricht genau an dieser Stelle ab und gibt nichts weiter aus!?
     

  4. #4
    Registriert seit
    Mar 2004
    Beiträge
    1.853
    Blog-Einträge
    2
    Zitat Zitat von Sasser Beitrag anzeigen
    PHP-Code:
    $date date_parse_from_format "n.j.Y g:i:s A",  $shop ['LastUpdate'] ); 
    Kommt deines nicht in einem anderen Format? j/n/Y
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  5. #5
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Meine Version ist leider unter 5.3.0!

    OK nun funktioniert es! Danke!

    Wie kann man noch die Nullen auffüllen?

    PHP-Code:
    list($monat$tag$jahr) = sscanf $shop ['LastUpdate'], "%d/%d/%d" );

    echo 
    "<span>&bull; Stand: " $tag "." $monat "." $jahr "</span>"
    Geändert von Sasser (06.10.09 um 23:26 Uhr)
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    1.853
    Blog-Einträge
    2
    %s liest alle Zeichen, du kannst es begrenzen:
    %2s oder %2$s
    Das liest nur zwei.

    Edit: sscanf() verweist auf sprintf() und da steht alles was man machen kann.
    Geändert von ZodiacXP (06.10.09 um 23:37 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  7. #7
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Das gibt mir leider nur Müll aus:

    PHP-Code:
    list($monat$tag$jahr) = sscanf $shop ['LastUpdate'], "%2s/%2s/%4s" );
    echo 
    "<span>&bull; Stand: " $tag "." $monat "." $jahr "</span>"
    Das passt schon, nur fehlen die Nullen...

    PHP-Code:
    list($monat$tag$jahr) = sscanf $shop ['LastUpdate'], "%d/%d/%d" );
    echo 
    "<span>&bull; Stand: " $tag "." $monat "." $jahr "</span>"
     

  8. #8
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Ich mache es genau wie beschrieben, also eine 02 für 2 Stellen und 04 für 4 Stellen, aber er füllt die Nullen nicht auf!? Warum? Was mache ich falsch?

    PHP-Code:
    list($monat$tag$jahr) = sscanf $shop ['LastUpdate'], "%02d/%02d/%04d" ); 

    Gibts da eigentlich keine schönere Methode, sodass man das Datum gleich nach echo ausgeben kann?
    Geändert von Sasser (07.10.09 um 00:38 Uhr)
     

  9. #9
    Registriert seit
    Mar 2004
    Beiträge
    1.853
    Blog-Einträge
    2
    Zitat Zitat von Sasser Beitrag anzeigen
    Ich mache es genau wie beschrieben, also eine 02 für 2 Stellen und 04 für 4 Stellen, aber er füllt die Nullen nicht auf!? Warum? Was mache ich falsch?
    Beim scannen ist es auch Unsinn, da das Datum ohne führende Nullen rein kommt.


    Zitat Zitat von Sasser Beitrag anzeigen
    Gibts da eigentlich keine schönere Methode, sodass man das Datum gleich nach echo ausgeben kann?
    Klar. http://de2.php.net/manual/de/function.preg-replace.php

    Welche Funktion gibt das Datum eigentlich als 10/5/2009 aus?
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  10. #10
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Sorry, aber bekomme es einfach nicht hin. Trotzdem danke.
     

  11. #11
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Letzter Versuch:

    PHP-Code:
    preg_replace '/(\d+)\/(\d+)\/(\d+)/i''${2}.${1}.${3}'$shop ['LastUpdate'] ) 
    Gibt mir folgendes aus:

    9.10.2009 1:19:00 AM

    Wie bekomme ich nach dem Datum alles weg und vor allem wie fülle ich mit den Nullen auf?
    Geändert von Sasser (09.10.09 um 16:29 Uhr)
     

  12. #12
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Warum macht ihr das alles so unglaublich kompliziert?

    PHP-Code:
    <?php
    date_default_timezone_set
    ('Europe/Berlin');
    $str '10/5/2009 2:18:00 AM';
    $time strtotime($str);
    echo 
    date('d.m.Y'$time);
    ?>
    Führt bei mir zur gewünschten Ausgabe.
    Sasser bedankt sich. 
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  13. #13
    Sasser Sasser ist offline Mitglied Brillant
    Registriert seit
    Mar 2008
    Beiträge
    966
    Super! Bei mir auch!

    Ich danke für die Hilfe! Wusste nicht, dass es auch so einfach geht
     

Ähnliche Themen

  1. [Oracle 10] Datum von Datum abziehen
    Von m3000 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 19.10.08, 06:04
  2. Uhr+Datum nach Serverzeit-/datum//Atomuhr stellen...
    Von heino-th im Forum Flash Plattform
    Antworten: 13
    Letzter Beitrag: 01.05.05, 16:16
  3. Antworten: 13
    Letzter Beitrag: 26.03.05, 13:33
  4. datum in tage umrechnen bzw. abfrage problem mit datum
    Von Brauni im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 25.08.03, 20:57
  5. umkonvertieren in psd oder jpg?
    Von Arcaine im Forum Photoshop
    Antworten: 7
    Letzter Beitrag: 13.03.02, 14:48