@@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