Jnnbo: <time> & PHP

Moin,

ich habe gelesen, wenn man ein Datum ausgeben lassen möchte, dann ist es sinnvoll dieses mit <time> zu erledigen, daher meine Frage, ist dieses so korrekt?

  
 <time datetime="2015-02-20T19:50:56+01:00">Montag, den 20.02.2015 - 19:50 Uhr</time>  

Und meine zweite Frage, kann ich das datetime= auch dynamisch mit PHP füllen lassen? Und die letzte Frage, wer bekommt das <time> überhaupt zu sehen? Damit meine ich, ich könnte dieses ja auch einfach mit <span> hinschreiben?

  1. Moin,

    OK mit PHP bin ich weiter gekommen. Vielleicht gibt es noch einen einfacheren Weg, aber es funktioniert erstmal:

      
    //Datum festlegen  
    $datum_header_en = date("Y-m-d");  
    $uhrzeit_header_en = date("H:i:s");  
    $datum_header_de = date("d.m.Y");  
    $uhrzeit_header_de = date("H:i");  
      
    $tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");  
      
    <div id="datum">  
    <time datetime="<?php echo $datum_header_en;?>T<?php echo $uhrzeit_header_en;?>+01:00"><?php $tag = date("w"); echo $tage[$tag];?>, den <?php echo $datum_header_de;?> - <?php echo $uhrzeit_header_de;?> Uhr</time>  
    </div>  
    
    
    1. @@Jnnbo:

      nuqneH

      <time datetime="<?php echo $datum_header_en;?>T<?php echo $uhrzeit_header_en;?>+01:00">

      +01:00 ist 7 Monate im Jahr falsch. Du meinst [link:http://php.net/manual/de/function.date.php@title=date]('P').

      Und das geht viel einfacher:
      <time datetime="<?php [code lang=php]echo date('c'); ?>">[/code]

      <?php $tag = date("w"); echo $tage[$tag];?>, den <?php echo $datum_header_de;?> - <?php echo $uhrzeit_header_de;?> Uhr</time>

      Ich würde auch nicht immer wieder neu das aktuelle Datum abfragen. Was, wenn der erste Aufruf kurz vor Mitternacht erfolgt, der letzte kurz danach? Dann hat du das Datum des Vortags mit der Uhrzeit nach 00:00, also um einen Tag falsch.

      <?php  
      [code lang=php]  $jetzt = time();  
        $tage = array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');  
      
      ~~~?>  
        
      <time datetime="<?php `echo date('c', $jetzt);`{:.language-php} ?>">  
        <?php `echo $tage[date('w', $jetzt)];`{:.language-php} ?>, den <?php `echo date('d.m.Y H:i', $jetzt);`{:.language-php} ?> Uhr  
      </time>[/code]  
        
      Und ja, [einfache Anführungszeichen in PHP](http://forum.de.selfhtml.org/archiv/2014/3/t216697/#m1486530).  
        
      Qapla'
      
      -- 
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      
      1. Und ja, einfache Anführungszeichen in PHP.

        ist im Grundsatz und für Beginner goldrichtig. Wer aber irgendwann damit anfängt, in HTML eingeschlossenes Javascript mit PHP (aber nicht in Templates) zu erzeugen, der sollte sein Gehirn schon darauf trainiert haben, mit mehreren Ebenen des Context-Wechsels klarzukommen.

        Jörg Reinholz

  2. @@Jnnbo:

    nuqneH

    daher meine Frage, ist dieses so korrekt?
    <time datetime="2015-02-20T19:50:56+01:00">Montag, den 20.02.2015 - 19:50 Uhr</time>

    Bis auf den '-' zwischen Datum und Uhrzeit ja.

    Und meine zweite Frage, kann ich das datetime= auch dynamisch mit PHP füllen lassen?

    Hast du ja schon selbst beantwortet.

    Und die letzte Frage, wer bekommt das <time> überhaupt zu sehen?

    Der User Agent (Browser). Was der damit macht, ist seine Sache. Er könnte bspw. anbieten, mit time ausgezeichnetet Zeitpunkte in den Terminplaner zu übernehmen.

    Damit meine ich, ich könnte dieses ja auch einfach mit <span> hinschreiben?

    Damit wäre der Inhalt nicht als Zeitpunkt ausgezeichnet.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)