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 :
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
} |
Et cela me retourne :
1 2 3
| timezone: "Europe/Paris"
error: RangeError: Invalid time zone specified: "Europe/Paris"
date_without_tz: 1586956984941 |
Je ne comprends pas, car quand je fais
date = new Date(ts).toLocaleString("en-US", {timeZone: "Europe/Paris"});
ça fonctionne bien, je n'obtiens pas une RangeError 
Qu'est ce que j'ai mal fait
?
Merci par avance pour vos retours.
Partager