Seite 1 von 1

Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 18:03
von Kebap
Welches von diesen Daten lässt sich am besten nutzen, um Zeitabstände zu berechnen?
Ich vermute "datetime", aber wie würde ich das in ein Rechenformat umwandeln und handhaben?
Ansonsten würde ich mit "data-date" und "data-time" arbeiten, aber vermutlich das Rad neu erfinden..

Code: Alles auswählen

<time 
  datetime="2019-07-10T20:06:10+02:00" 
  class="datetime" 
  data-timestamp="1562781970" 
  data-date="10. Juli 2019" 
  data-time="20:06" 
  data-offset="7200" 
  title="10. Juli 2019, 20:06">
10. Juli 2019</time>

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 18:20
von __blackjack__
@Kebap: "datetime" ist am vollständigsten weil es im Gegensatz zu allen anderen Angaben auch die Zeitzone enthält. Und es ist in einem standardisierten Format angegeben. Ansonsten ist "data-timestamp" ein vollständiger Zeitpunkt (in Sekunden seit 1.1.1970 1 Uhr) mit dem sich natürlich sehr leicht Differenzen in Sekunden berechnen lassen. Oder auch `datetime.timedelta` weil man aus dem Zeitstempel sehr einfach ein `datetime.datetime`-Objekt erstellen kann:

Code: Alles auswählen

In [22]: datetime.datetime.fromtimestamp(1562781970)                            
Out[22]: datetime.datetime(2019, 7, 10, 20, 6, 10)
"data-date" hat das ”Problem”, dass der Monatsname als Text da drin steht und am Juli kann man nicht erkennen ob der März an der Stelle März hiesse oder March, oder irgend eine andere natürliche Sprache in der der Juli auch Juli heisst.

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 18:29
von Kebap
Ah danke, ich verstehe, ja da gefällt mir timestamp sogar noch besser! Die Sekunden umwandeln klingt leicht und die Differenzen sind offensichtlich.

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 18:44
von __blackjack__
Ergänzend: Nur mit den Attributen "datetime" oder "data-timestamp" funktioniert das über die Zeitpunkte der Umstellung zwischen Sommer-/Winterzeit korrekt. Falls das wichtig ist.

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 19:55
von snafu
Wobei der Juli im Englischen ja July geschrieben wird. Aber klar, es ist immer etwas schwierig mit sprachabhängigen Angaben. Etwas international genormtes ist da schon die bessere Wahl.

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 21:26
von __blackjack__
Naja blöd reinfallen kann man beispielsweise zwischen Österreich und Deutschland, was mir in der Praxis sogar mal passiert ist. Ich ging von Deutschem Deutsch aus und habe nicht damit gerechnet, das es im Januar nicht Januar hiess, sondern Jänner.

Hier mal alle Locales die `babel` kennt, bei denen der Juli Juli heisst, aber nicht alle Monate wie in de_DE geschrieben werden:

Code: Alles auswählen

de_AT Deutsch (Österreich) ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
de_IT Deutsch (Italien) ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
id Indonesia ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']
id_ID Indonesia (Indonesia) ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']
jv Jawa ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']
jv_ID Jawa (Indonésia) ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']
lb Lëtzebuergesch ['Januar', 'Februar', 'Mäerz', 'Abrëll', 'Mee', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
lb_LU Lëtzebuergesch (Lëtzebuerg) ['Januar', 'Februar', 'Mäerz', 'Abrëll', 'Mee', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
nds Neddersass’sch ['Januaar', 'Februaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktover', 'November', 'Dezember']
nds_DE Neddersass’sch (Düütschland) ['Januaar', 'Februaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktover', 'November', 'Dezember']
nds_NL Neddersass’sch (Nedderlannen) ['Januaar', 'Februaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktover', 'November', 'Dezember']
su Basa Sunda ['Januari', 'Pébruari', 'Maret', 'April', 'Méi', 'Juni', 'Juli', 'Agustus', 'Séptémber', 'Oktober', 'Nopémber', 'Désémber']
su_Latn Basa Sunda (Latin) ['Januari', 'Pébruari', 'Maret', 'April', 'Méi', 'Juni', 'Juli', 'Agustus', 'Séptémber', 'Oktober', 'Nopémber', 'Désémber']
su_Latn_ID Basa Sunda (Latin) ['Januari', 'Pébruari', 'Maret', 'April', 'Méi', 'Juni', 'Juli', 'Agustus', 'Séptémber', 'Oktober', 'Nopémber', 'Désémber']

Re: Zeiten vergleichen

Verfasst: Freitag 12. Februar 2021, 21:31
von Kebap
Es wäre de_DE gewesen, aber ich hab keine Lust Monate & co. umzurechnen, daher nehme ich lieber die Sekunden.