forum.coppermine-gallery.net
Support => Deutsch (German) => Language Specific Support => cpg1.4.x Deutsch (German) => Topic started by: ManfredK on May 12, 2008, 08:08:36 pm
-
Hallo,
Ich würde gerne das Datumsformat für 'Datum & Uhrzeit Digitaliserung:' (YYYY:MM:DD HH:mm) in ein anderes Datumsformat z.B. DD.MM.JJJJ HH:mm ändern. Wie und wo kann ich dies tun?
Danke für eure Hilfe.
-
Alle Datumsformate werden in der Sprachdatei definiert - bearbeite also lang/german.php mit einem Nur-Text Editor. Der Bereich
// The various date formats
// See http://www.php.net/manual/en/function.strftime.php to define the variable below
$album_date_fmt = '%d.%B %Y';
$lastcom_date_fmt = '%d.%m.%y um %H:%M';
$lastup_date_fmt = '%d.%B %Y';
$register_date_fmt = '%d.%B %Y';
$lasthit_date_fmt = '%d.%B %Y um %H:%M';
$comment_date_fmt = '%d.%B %Y um %H:%M';
$log_date_fmt = '%d.%B %Y um %H:%M'; //cpg1.4
ist der Teil, den Du bearbeiten musst. Wie im Kommentar angegeben kannst Du die entsprechende Anleitung unter http://www.php.net/manual/en/function.strftime.php ansehen, die Deutsche Version dieser Anleitung ist unter http://www.php.net/manual/de/function.strftime.php zu finden.
Ich befürchte allerdings, dass Du Dich auf ein Exif-Feld beziehst - da ticken die Uhren ein bißchen anders. In der Regel ist das internationale Datumsformat in Deine Exif-Daten direkt eincodiert, so dass Du Deine Dateien vor dem Upload mit einem geeigneten Exif-Tool bearbeiten musst.
-
Ich befürchte allerdings, dass Du Dich auf ein Exif-Feld beziehst - da ticken die Uhren ein bißchen anders. In der Regel ist das internationale Datumsformat in Deine Exif-Daten direkt eincodiert, so dass Du Deine Dateien vor dem Upload mit einem geeigneten Exif-Tool bearbeiten musst.
Hallo Joachim,
Besten Dank für deine Antwort.
Es ist leider in der Tat so, dass ich das Format eines Exif-Feldes ändern will.
Es muss doch auch eine andere Möglichkeit geben, das Datumsformat ohne Änderung der Exif anders darzustellen. Jemand eine Idee?
LG ;)
Manfred
-
Mit nem http://de2.php.net/manual/de/function.preg-match-all.php an der geeigneten Stelle, duerfte das doch kein Problem sein, oder?
Also den String vor der Ausgabe jedes mal verarbeiten.. habe mal ne entsprechende Routine gebastelt:
<?php
$ursprungsformat = "2008:05:14 09:35"; // = YYYY:MM:DD HH:mm
preg_match_all('/\d+/', $ursprungsformat, $temp);
$wunschformat = $temp[0][2].".".$temp[0][1].".".$temp[0][0]." ".$temp[0][3].":".$temp[0][4]; // = DD.MM.JJJJ HH:mm
echo "Urprungsformat: $ursprungsformat <br /> Wunschformat: $wunschformat";
?>
Ausgabe: Urprungsformat: 2008:05:14 09:35
Wunschformat: 14.05.2008 09:35
-
muu
-
Hallo,
Danke für deine Antwort.
nur wenn...
an der geeigneten Stelle
...die geeignete Stelle so leicht zu finden wäre.
LG
Manfred
-
Wenn es um die Ausgabe der Datei-Informationen unter einem Bild geht, musst du mal in die Datei "displayimage.php" reinschaun.. dort gibts eine Stelle
if (isset($exif) && is_array($exif)) {
array_walk($exif, 'sanitize_data');
$info = array_merge($info,$exif);
.. dort werden meines Erachtens die Exif-Daten ausgelesen.. mit nem print_r($info) könntest du herausfinden welchen Wert du aus dem Array bearbeiten musst
-
muu
-
Wenn es um die Ausgabe der Datei-Informationen unter einem Bild geht, musst du mal in die Datei "displayimage.php" reinschaun.. dort gibts eine Stelle
if (isset($exif) && is_array($exif)) {
array_walk($exif, 'sanitize_data');
$info = array_merge($info,$exif);
.. dort werden meines Erachtens die Exif-Daten ausgelesen.. mit nem print_r($info) könntest du herausfinden welchen Wert du aus dem Array bearbeiten musst
-
muu
Hallo,
Noch einmal besten Dank, aber anscheinend bin ich zu doof :(.
Ich habe keine Ahnung, was ich wo hinschreiben muss.
um diese beiden Tags handelt es sich:
case "9003": $tag = "DateTimeOriginal" //DD.MM.YYYY HH:MM:SS
case "9004": $tag = "DateTimedigitized" //DD.MM.YYYY HH:MM:SS
Also wenn du noch ausreichend Geduld hast, noch einmal für blutige Anfänger.
LG ;)
Manfred
-
Um bei meinem Ansatz zu bleiben: schau in die Datei "displayimage.php" und suche folgende Stelle:
if (isset($exif) && is_array($exif)) {
array_walk($exif, 'sanitize_data');
$info = array_merge($info,$exif);
}
an dieser Stelle wurde das "info"-Array mit den exif-Daten gefüllt.. jetzt könntest du einfach das entsprechende Feld auslesen und bearbeiten.. hier am Beispiel von "Datum & Uhrzeit Digitaliserung":
preg_match_all('/\d+/', $info['Datum & Uhrzeit Digitaliserung'], $temp);
$info['Datum & Uhrzeit Digitaliserung'] = $temp[0][2].".".$temp[0][1].".".$temp[0][0]." ".$temp[0][3].":".$temp[0][4];
wenn du diesen Code hinter die erwähnte Stelle schreibst hast du deine gewünschte Ausgabe (bei meinem Beispielbild steht jetzt: "Datum & Uhrzeit Digitaliserung: 29.07.2005 15:00")
mit "Datum & Uhrzeit Original" geht das genauso..
der gesamte Code dafür wäre dann folgender:
if (isset($exif) && is_array($exif)) {
array_walk($exif, 'sanitize_data');
$info = array_merge($info,$exif);
}
preg_match_all('/\d+/', $info['Datum & Uhrzeit Digitaliserung'], $temp);
$info['Datum & Uhrzeit Digitaliserung'] = $temp[0][2].".".$temp[0][1].".".$temp[0][0]." ".$temp[0][3].":".$temp[0][4];
preg_match_all('/\d+/', $info['Datum & Uhrzeit Original'], $temp);
$info['Datum & Uhrzeit Original'] = $temp[0][2].".".$temp[0][1].".".$temp[0][0]." ".$temp[0][3].":".$temp[0][4];
ist zwar etwas zusammengefrickelt, funktioniert auch nur in einer deutschen Galerie, aber ich denke sowas in der Art wolltest du haben :)
mfg
muu
-
Hallo,
Mein Fehler war, dass ich immer das '$info' vergessen habe *kopfschüttel*.
Jetzt funktioniert es. Besten Dank noch einmal.
*Problem gelöst*.