Bildergalerie EXIF Aufnahmedatum umformatieren

yaslaws Source funktioniert. Bist Du Dir sicher, dass Du die Daten richtig ansprichst? Ich habs grad mal mit meinen Bildern getestet:
PHP:
$image = 'Testbild.jpg';
$pic_exif = exif_read_data($image, 0 , true);

echo "<pre>";
var_dump($pic_exif);
echo "</pre>";

$exifdate = $pic_exif['EXIF']['DateTimeOriginal'];
// Ist hier uU der Fehler?

$date = strtotime($exifdate);
echo "<br/>".date('d.m.Y - H:i:s', $date);

mfg chmee
 
So nochmal ich.

Habe mir eben ein kleines Beispiel zum Auslesen des EXIF-Datums aus dem Netz kopiert und mit yaslaw Code versehen:

PHP:
<?php

$image = 'C:\Dokumente und Einstellungen\Computer\Eigene Dateien\Eigene Bilder\Shadow\DSC_0124.jpg';

if ($image != '') {
	$exif = exif_read_data($image, 0 , true);
    if(isset($exif["EXIF"]["DateTimeOriginal"])) {
		echo $exif["EXIF"]["DateTimeOriginal"] ."<br />";
		$date = strtotime($exif["EXIF"]["DateTimeOriginal"]);
		echo date('d.m.Y - H:i:s', $date);
    }
}

?>

Siehe da ich erhalte zuerst das Datum/die Uhrzeit so wie bei dir und dann die korrekt formatierte Ausgabe mit diesen Angaben!
 
Bei mir funktionier schon dieser Code

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

nicht, aus irgendwelchen unempfindlichen Gründen. Glaube ich nicht, das etwas mit meinem Code nicht stimmt, wenn ich meine o.g. variable ausgebe dann stimmt der Wert (z.B. 2010:09:25 14:16:19).

Aber hier ist nochmal mein Code-Schnipsel:
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 } ?>
...

Es ist ja schön das der Code bei euch funktioniert, bringt mich aber leider nicht weiter, weil dieser bei mir eben nicht klappt, warum auch immer.

Ich muss dazu sagen, dass der Code nciht komplett von mir stammt! Das ist eine von mir modifizierte Version vom Pixelie-Bildergalerie.

Der Code ist generell sehr verschachtelt!
 
Zuletzt bearbeitet:
Du hast die Source doch von pixlie.de. Frag dort im Forum, was los ist, denn warum es auf Deinem Server nicht geht, kann ich nicht erahnen.

Tatsache ist, wenn strtotime() -1 auswirft, dann heisst es, er konnte die date nicht sauber extrahieren und müsste dann zB per Regex oder explode() zerlegt werden. Aber das soll nun Deine Aufgabe sein.

mfg chmee

p.s.: Laß Dir per phpinfo() ausgeben, welche php-Version bei Dir läuft und checke gegen, ob dies eine potentielle Fehlerquelle sein kann.
 
Das es auf meinem Server nicht geht, habe ich ja erst mit dem Code von yaslaw herausgefunden, aber das werden die mit pixelie-Forum mir auch nicht sagen können ;-)

Es liegt aber am Server, denn wenn ich die Datei Local über XAMPP mir im Browser anschaue, dann funktioniert es bei mir auch, nur auf meinem Webspace nicht! Da werde ich wohl meinen Provider kontaktieren müssen!
 
Wie heißt den die Anweisung mit der man die Datumsregion einstellen kann. Ist das "setlocale"?

Vielleicht hat es mit dieser oder einer ähnlichen Einstellung in der php.ini zu tun?
 
Jetzt wird es Komisch Lokal gibt er mir Europe/Berlin aus und auf meinem Webspace:

Fatal error: Call to undefined function: date_default_timezone_get() in /homepages/33/d19063985/htdocs/L4U_2010/test.php on line 9
 
Kann es sein, dass auf dem Webserver irgendeine Version <5.1.0 läuft?. bitte phpinfo(); anschauen.

mfg chmee
 
Dann läuft dort wohl noch eine PHP Version die noch vor 5 liegt.

Lass dir mal mit:

PHP:
echo phpinfo();

die aktuellen Einstellungen auf dem Server ausgeben und stell das hier rein. Vielleicht findet sich dann ja was.
 

Neue Beiträge

Zurück