1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP: Datum umformatieren

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von atomfried, 06.03.07.

  1. atomfried

    atomfried Leipziger Reinette

    Dabei seit:
    02.04.05
    Beiträge:
    1.781
    hallo!
    ich habe ein kleines PHP Problem und hoffe es kann mir jemand helfen...

    mit:
    Code:
    <?php
    $heute = date("Ymd_hms");
    ?>
    
    lese ich das datum aus und schreibe es anschliessend in eine Textdatei in diesem Format:
    "20070306_110348"
    Das ist auch richtig so! Aber nun lese ich dieses Datum wieder aus und hätte es gerne umgewandelt in dieses Format:
    "March 6, 2007, 11:03" also so wie als wenn ich die Abfrage so gemacht hätte:

    Code:
    <?php
    $heute = date("F j, Y, g:i");
    ?>
    
    nur halt eben mit dem ausgelesenen datum und nicht dem aktuellen.

    ich hoffe ich konnte mich verständlich ausdrücken.
    Danke schonmal!
     
  2. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Wenn Du ein proprietäres Datumsformat verwendest, wird es natürlich etwas aufwändiger, andernfalls könntest Du die Datumszeichenketten schön mit strtotime, strptime, etc. auflösen. Aber hier müsstest Du die Zeichenkette zunächst auseinanderschrauben und einzeln verwenden (oder in einen UNIX-Timestamp verwandeln):
    Code:
    <?php
    $parts = array();
    $parts['y'] = substr($atomfdate, 0, 4);
    $parts['m'] = substr($atomfdate, 4, 2);
    $parts['d'] = substr($atomfdate, 6, 2);
    $parts['h'] = substr($atomfdate, 9, 2);
    $parts['m'] = substr($atomfdate, 11, 2);
    
    /* Jetzt hast Du alle Bestandteile aufgelöst, und kannst diese entweder direkt ausgeben... */
    /* ... oder zunächst in einen Unix-Timestamp umwandeln... */
    $stamp = mktime(0, $parts['m'], $parts['h'], $parts['m'], $parts['d'], $parts['y']);
    
    /* ... und jetzt formatiert wieder ausgeben: */
    $heute = date("F j, Y, g:i", $stamp);
    
    /* ungetestet ;) */
    ?>
    
    Schau Dir auch mal strftime an.
     
  3. LaForce

    LaForce Transparent von Croncels

    Dabei seit:
    18.01.06
    Beiträge:
    309
    Ich würde das Datum lieber etwas verträglicher speichern (z.B. in UTC). Ansonsten kannst du auch sowas machen:

    $x = "20070306_110348";
    echo date("F j, Y",mktime(substr($x,9,2),substr($x,11,2),substr($x,13,2),substr($x,6,2),substr($x,4,2), substr($x,0,4)));
     
  4. atomfried

    atomfried Leipziger Reinette

    Dabei seit:
    02.04.05
    Beiträge:
    1.781
    danke für die hilfe, musste es noch ein wenig anpassen, aber jetzt funktioniert es zum glück. das "$parts['m']" zweimal bei dir im code vorkommt fiel mir auch erst später auf.
     
  5. atomfried

    atomfried Leipziger Reinette

    Dabei seit:
    02.04.05
    Beiträge:
    1.781
    das sieht fast noch einfacher aus. werde es mal ausprobieren. danke!
     
  6. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Ups :)

    *flöt*
     

Diese Seite empfehlen