Gunnar Bittersmann: Javascript Problem bei mehrere ID's

Beitrag lesen

@@Rolf B

Vorschlag: Generiere die Spalte mit dem Ablaufzeitpunkt so:

<table>
<tr>...<td data-ablauf="1699632600">10.11.2023 17:10:00</td></tr>
<tr>...<td data-ablauf="1704106800">01.01.2024 12:00:00</td></tr>
</table>

Im data-Attribut steht der UTC Wert des Zeitpunkts, und im Textinhalt der Zelle steht die Zeit so, dass ein Mensch sie versteht.

Nein, in deinem data-Attribut steht ein timestamp, nichts mit UTC.

Kann man aber machen:

<table>
  <tr>...<td><time datetime="2023-10-01T17:10Z">01.10.2023 19:10</time></td></tr>
  <tr>...<td><time datetime="2023-12-31T23:30Z">01.01.2024 00:30</time></td></tr>
</table>

HTML sieht dafür das time-Element mit datetime-Attribut vor.

Im Gegensatz zum maschinenlesbaren Timestamp ist die Angabe im ISO-8601-Format sowohl maschinen- als auch menschenlesbar.

Ganz wichtig: Es muss die UTC-Zeit sein, sonst bist Du bei Übergängen zwischen Sommer- und Winterzeit um eine Stunde daneben.

Nö, muss nicht. Wichtig ist, dass die Zeitzone korrekt angegeben ist. Das kann genauso gut auch so sein:

<table>
  <tr>...<td><time datetime="2023-10-01T19:10+02:00">01.10.2023 19:10</time></td></tr>
  <tr>...<td><time datetime="2024-01-01T00:30+01:00">01.01.2024 00:30</time></td></tr>
</table>

Die UTC-Zeit bekommst Du in PHP, wenn Du ein DateTime-Objekt $d hast, entweder über $d->format("U") (großes U) oder über $d->getTimestamp().

Nö. Die Angabe in UTC bekommst du in PHP über $d->format('c') (kleines c).

🖖 Живіть довго і процвітайте

--
Ad astra per aspera