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

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

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