Bonjour à tous,
Je chercher à implémenter une fonction qui met la date et l'heure à jour en fonction d'un timestamp renvoyé en UTC+0 et des variables metazone/location, sans rentrer dans les détails les variables sont renvoyées en JSON via un websocket (là n'est pas le problème).
Je me suis fait ma petite "librairie" avec les metazone/location disponible en me basant sur les "canonical" : https://en.wikipedia.org/wiki/List_o...ase_time_zones
Et je me suis appuyé ensuite sur ce lien : https://stackoverflow.com/a/54127122 pour faire un set de la date en appliquant le "timezone"
J'ai donc construit cette fonction :
Et cela me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function update_datetime(ts) { // ts is in us let timezone = get_timezone_toString(); // ça me retourne un metazone/location suivant les variables définies console.log(`timezone: ${timezone}`); let date; try { date = new Date(ts).toLocaleString("en-US", {timeZone: `${timezone}`}); date = new Date(date); console.log(`date_with_tz: ${date.valueOf()}`); } catch(error) { console.log(`error: ${error}`); if(error instanceof RangeError) { date = new Date(ts); console.log(`date_without_tz: ${date.valueOf()}`); } } // Some code .. le reste fonctionne comme je veux }
Je ne comprends pas, car quand je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 timezone: "Europe/Paris" error: RangeError: Invalid time zone specified: "Europe/Paris" date_without_tz: 1586956984941ça fonctionne bien, je n'obtiens pas une RangeError
Code : Sélectionner tout - Visualiser dans une fenêtre à part date = new Date(ts).toLocaleString("en-US", {timeZone: "Europe/Paris"});
Qu'est ce que j'ai mal fait?
Merci par avance pour vos retours.
Partager