[Solved]: Datumsformat ändern [Solved]: Datumsformat ändern
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

[Solved]: Datumsformat ändern

Started by ManfredK, May 12, 2008, 08:08:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ManfredK

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.
LG ;)
Manfred

Joachim Müller

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.

ManfredK

Quote from: Joachim Müller on May 13, 2008, 09:02:34 AM
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
LG ;)
Manfred

Αndré

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:
QuoteUrprungsformat: 2008:05:14 09:35
Wunschformat: 14.05.2008 09:35


-
muu

ManfredK

Hallo,
Danke für deine Antwort.

nur wenn...
Quote from: eenemeenemuu on May 14, 2008, 09:40:19 AM
an der geeigneten Stelle
...die geeignete Stelle so leicht zu finden wäre.

LG
Manfred
LG ;)
Manfred

Αndré

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

ManfredK

Quote from: eenemeenemuu on May 14, 2008, 11:21:10 AM
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
LG ;)
Manfred

Αndré

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

ManfredK

Hallo,
Mein Fehler war, dass ich immer das '$info' vergessen habe *kopfschüttel*.
Jetzt funktioniert es. Besten Dank noch einmal.

*Problem gelöst*.
LG ;)
Manfred