Zeitangaben formatieren
Felix, der Glückliche
- javascript
Hallo,
Wie kann ich eine Zeitangabe in einen länderüblichen String konvertieren?
Also z.B.
//Eingabe:
let zeit = "13:30:00"
// Expected Output (us): "1:30 pm"
// Expected Output (de): "13:30"
Hab mit localeTimeString herumhantiert aber geht das auch ohne Date-Objekt?
(Ich will z.B. auch nicht, dass Zeitzonen umgerechnet werden, es handelt sich um fixe Öffnungszeiten)
Danke! Felix.
...vielleicht zur Verdeutlichung:
je nachdem, wo auf die Seite zugegriffen wird, soll die länderübliche Darstellungsvariante dargestellt werden.
Danke!
Hallo,
...vielleicht zur Verdeutlichung:
je nachdem, wo auf die Seite zugegriffen wird, soll die länderübliche Darstellungsvariante dargestellt werden.
das wird so nicht möglich sein. Dein Ansatz sieht offenbar Javascript vor (also clientseitig), und damit hast du allenfalls die Möglichkeit, dich an den regionalen Einstellungen ("locale") des verwendeten Rechners zu orientieren.
Das kann sich erheblich von der tatsächlichen Region unterscheiden - z.B. bei einem Deutschen, der mit seinem eigenen Notebook auf Dienstreise in den USA unterwegs ist.
Live long and pros healthy,
Martin
Hallo Der Martin,
je nachdem, wo auf die Seite zugegriffen wird, soll die länderübliche Darstellungsvariante dargestellt werden.
das wird so nicht möglich sein. Dein Ansatz sieht offenbar Javascript vor (also clientseitig), und damit hast du allenfalls die Möglichkeit, dich an den regionalen Einstellungen ("locale") des verwendeten Rechners zu orientieren.
Das kann sich erheblich von der tatsächlichen Region unterscheiden - z.B. bei einem Deutschen, der mit seinem eigenen Notebook auf Dienstreise in den USA unterwegs ist.
Ich glaube, das ist genau das, was Felix, der Glückliche, möchte.
je nachdem, wovon wem auf die Seite zugegriffen wird, soll die länderübliche seine übliche Darstellungsvariante dargestellt werden.
Bis demnächst
Matthias
Korrekt. Genau das will Felix 🙃
Erster Treffer:
Das sagt aber (scheinbar), Du musst die Einstellung angeben und zwar in der Form 'de-DE'.
Wo diese herkommen steht hier:
https://stackoverflow.com/questions/673905/best-way-to-determine-users-locale-within-browser
Womöglich musst Du also etwas wie 'de' durch 'de-DE' ersetzen:
if ( -1 == str.indexOf('-') {
str = str + '-' + str.toUpperCase();
}
Mit anderen Worten: es gibt also keine [native] Möglichkeit, eine Zeitangabe wie "15:00:00" je nach Aufenthaltsort unterschiedlich darstellen zu lassen.
Servus!
Mit anderen Worten: es gibt also keine [native] Möglichkeit, eine Zeitangabe wie "15:00:00" je nach Aufenthaltsort unterschiedlich darstellen zu lassen.
Genau!
Den Aufenthaltsort könntest du mit Geolocation ermitteln, wenn der Nutzer dies zulässt.
Dann hast du aber das Problem, dass jemand in den USA sein deutsches Tablet mit den entsprechenden Spracheinstellungen in System und Browser benutzt.
Andererseits könnte auch ein deutscher Nutzer in einem peruanischen Internetcafé in Iquitos deine deutsche Seite mit spanischen / lateinamerikanischen Einstellungen aufrufen.
Herzliche Grüße
Matthias Scharwies
Hallo Matthias Scharwies,
Mit anderen Worten: es gibt also keine [native] Möglichkeit, eine Zeitangabe wie "15:00:00" je nach Aufenthaltsort unterschiedlich darstellen zu lassen.
Genau!
Dass es nicht um den Aufenthaltsort, sondern um die Einstellung des Browsers geht, hatten wir schon geklärt.
Date.prototype.toLocaleDateString() könnte in Verbindung mit NavigatorLanguage.language zielführend sein (ungetestet).
Bis demnächst
Matthias
Den Aufenthaltsort könntest du mit Geolocation ermitteln, wenn der Nutzer dies zulässt.
Leute Leute,
es geht nur um die Angaben von Öffnungszeiten, ihr seid da ein wenig übermotiviert 😂
...aber schon komisch, dass ich ein nicht relevantes Datum (dd/mm/yyy) angeben muss, damit ich die Zeit formatieren kann, quasi
new Date('August 19, 1975 /* braucht kein Mensch */ 23:15:30').toLocaleTimeString();
Danke für eure Hilfe!
...aber schon komisch, dass ich ein nicht relevantes Datum (dd/mm/yyy) angeben muss, damit ich die Zeit formatieren kann,
Nö. Musst Du nicht. Du kannst Dir alternativ eine lange Liste mit Sprachcodes holen, dazu das jeweilige Ausgabeformat erst heraussuchen und beides sodann in geeigneter Form notieren und in Deiner Anwendung den String entsprechend zusammenbauen... Stellt sich die Frage, wie Dir (und den Benutzern der Webseite, die das ganze Zeug herunterladen müssen... ) diese Alternative wohl gefällt.