We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28465
    • 29 Posts
    Hi,

    ich stolperte gestern als Neuling -- sowohl in PHP als auch MODx -- darüber, dass einige TVs wie [*editedon*] oder [*createdon*] Unix-Zeitstempel ausgeben. Ich wollte nun über ein Snippet eine Formatierung in ein verständliches Format erzeugen und kam zunächst nicht voran, bis mir jemand im englischsprachigen Teil des Forums einen entscheidenden Tipp gab.

    <?php
    
    $zeitstempel_zu_datum = $modx->documentObject['createdon'];
    
    echo strftime("%d.%m.%y, %H:%M:%S", $zeitstempel_zu_datum);
    
    ?>


    Entscheidend war dabei der Teil $modx->documentObject[’createdon’], wo ich vorher als Variableninhalt nur den TV-Aufruf [*createdon*] stehen hatte, was einen Parserfehler ergab.

    Diese statisch programmierte Version reicht mir persönlich aus, für weitere TVs lege ich dann einfach weitere Snippets an. Nicht unbedingt extrem elegant, aber es erledigt den Job und bislang benötige ich nur "createdon" und "editedon".

    Vielleicht hilft diese praktische Erfahrung anderen Neulingen ja auch.
      • 17883
      • 1,039 Posts
      Hi, danke für die Erklärung.

      Aber für TVs kannst Du auch einfach das time-widget auswählen und dort die gewünschte Zeitausgabe definieren. Das macht im Prinzip nichts anderes als der Code Schnippsel, den Du gepostet hast. Also zum Beispiel eine TV anlegen mit Standardwert [*createdon*] und als widget (Objektauswahl) date formatter auswählen und dort %d.%m.%y, %H:%M:%S eingeben.
        • 28465
        • 29 Posts
        Hi,

        danke für den Tipp, der bei mir nur teilweise funktioniert.

        Als Ausgabedatum erhalte ich den 01.01.70 um 01:00 Uhr.

        Anbei meine Einstellungen als .png

        Eingabetyp "Date" oder "Text" oder "Number" machen keinen Unterschied.