Bildergalerie EXIF Aufnahmedatum umformatieren

fotia1980

Mitglied
Hallo zusammen,

ich habe auf meiner HP eine Bildergalerie die die Exif-Daten ausließt und diese als Bildunterschrift wieder gibt. Klappt auch soweit, ich habe nur einen kleinen Schönheitsfehler.

Das Aufnahmedatum ist beim Foto im Format 2003:12:18 14:58:05 als String hinterlegt. Ich würde es gerne aber wie in Deutschland üblich so formatiert haben 18.12.2003 - 14:58:05

Ist das möglich ohne den kompletten String zu "sprengen" und neu zusammen zu setzen?

Gruß
Dennis
 
Ja. da die jetztige AUsgabe ein lesbares Datumformat ist, kannst du das ganze in ein PHP-Datum (Unix-Timestamp) wandeln und sauber formatiert wieder ausgeben
PHP:
$date = strtotime('2003:12:18 14:58:05');
echo date('d.m.Y - H:i:s', $date);
//Ausgabe: 18.12.2003 - 14:58:05
 
Das funktioniert leider nicht so wie du das schreibst!

ich bekomme immer einen Wert von -1 was bedeutet, dass bedeutet das als Ausgabe bei jedem Foto "01.01.1970 - 00:59:59" steht.

Hier einen Auszug vom Betreffenden-Code:
PHP:
        <?php foreach ($pixlie_table_file as $picture){ ?>
        <!-- Baue Link zu Bildtyp "y": Pfad zu Pixlie / Query zum Bild / _y + Dateiendung -->
        <?php 
		$exifdate = $picture['exif_exif_datetimeoriginal'];
		$date = strtotime('$exifdate'); ?>
        <div id="folderpic-container">
<div class="folderpic"><div class="folderpic-link"><a href="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_y<?php echo $picture['extension']; ?>" 
		   rel="lightbox[foto]" 
		   title="<?php if(isset($picture['name'])){ echo $picture['iptc_object_name']. '<br>' .$picture['iptc_caption']. '<p>Datum: ' .date('d.m.Y - H:i:s', $date). '<br>Kamera: ' .$picture['exif_ifd0_model']. '<br>Belichtungszeit: ' .$picture['exif_exif_exposuretime']. '<br>Blendenwert: ' .$picture['exif_computed_aperturefnumber']. '<br>Empfindl.: ISO ' .$picture['exif_exif_isospeedratings']; } ?>">
        <!-- Baue Link zu Bildtyp "x": Pfad zu Pixlie / Query zum Bild / _x + Dateiendung -->
        <img src="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_x<?php echo $picture['extension']; ?>" 
		    alt="<?php echo $picture['name']; ?>" style="width:80px;height:80px;" /><div class="folderpic-name"><?PHP echo $picture['exif_exif_datetimeoriginal']; ?> </div></a></div></div>
        <?php } ?>
 
Sorry, Aber diesen Code kann ich nicht lesen.
Zeilenumbrüche und Tabulatoren.

Naja, ich sehs trotzdem. Was soll das bewirken?
PHP:
$date = strtotime('$exifdate');
wozu die ' ?. Somit wird die Variable nicht geparst sondern als String '$exifdate' weiterverarbeitet. und der String '$exifdate' ist nun mal kein Datum. $exifdate ist aber eins....

Mach dich mal schlau über Strings und Anführungszeichen in PHP.
 
Danke für den Tipp, habe die Hochkommatar entfernt, selbe Ergebnis! Selbst wenn ich NUR deinen Code in eine PHP Datei packe kommt nur als wert -1 bzw. 01.01.1970 - 00:59:59
 
Es gibt ja keine dummen Fragen, deshalb stelle ich diese.

Stimmt das so:

PHP:
$exifdate = $picture['exif_exif_datetimeoriginal'];

"exif_exif_datetimeoriginal" sieht für mich komische aus. Sollte das nicht so aussehen:

PHP:
$exifdate = $picture['DateTimeOriginal'];
 
Das stimmt so! Die Ausgabe mit
PHP:
$picture['exif_exif_datetimeoriginal']
Funktioniert ja! Ich will es ja einfach nur umformatieren!
 
Ok, das muss ich dir dann wohl so glauben.

Ich habe eben das Beispiel von yaslaw kopiert und bei mir getestet. Das Ergebnis ist wie von ihm oben beschrieben.

Irgendwas stimmt also bei dir in der Umsetzung des Codes nicht!
 
Ok, das muss ich dir dann wohl so glauben.

Ich habe eben das Beispiel von yaslaw kopiert und bei mir getestet. Das Ergebnis ist wie von ihm oben beschrieben.

Irgendwas stimmt also bei dir in der Umsetzung des Codes nicht!
Wie ich schon geschrieben habe, habe ich seinen Code auch in eine Text.php kopiert und NUR seinen Code und es klappt bei mir auch so nicht!
 
Wenn ich den Code nehme und ein ungültiges Datum als Wert eingebe:

PHP:
$date = strtotime('2003:12:18 xxx');
echo date('d.m.Y - H:i:s', $date);

Dann bekomme ich als Ausgabe: "01.01.1970 - 01:00:00" also im Grunde das gleiche wie du.
Ist für mich der Beweis dafür das mit deiner Variable/dem enthaltenen Datum etwas nicht stimmt.

Zeig nochmal deinen (sauber formatierten) Code und lass dir mit echo auch nochmal die Werte am Bildschirm ausgeben.
 

Neue Beiträge

Zurück