11524 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'utilise l'api OpenWeatherMap pour récupérer des prévisions météo à 5 jours (par tranches de 3H) et j'ai un problème avec l'affichage des dates.

J'observe 1H de décalage entre l'heure réelle, à ma montre (je suis dans la ville ciblée [Bergerac] ) et les heures affichés dans les résultats.
Par exemple, à partir de 08h00, je vois des résultats affichés pour 09:00 (voir image jointe)

Si j'interroge les résultats il me renvoie un timezone de 7200 ( 2 x 3600 ) donc je serais en décalage UTC de 2H et si on tient compte de l'heure d'été, cela ramène à 1H ce qui confirmerait les résultats observés...

l'API renvoie à la fois un timestamp et la date sous la forme 2023-09-04 09:00:00

Comment compenser ça (sans faire -1H à toutes les heure récupérées)?


upload/1693809734-40948-zone-horaire.jpg
Modifié par lionel_css3 (04 Sep 2023 - 08:50)
Salut,

La fonction Date() renvoie automatiquement la date dans ton fuseau horaire.

A partir du timestamp tu peux faire :

let timestamp = 1661893200
let date = new Date(timestamp * 1000)


Sinon à partir de la date UTC ( 2023-09-04 09:00:00 ) il faut rajouter un Z à la fin pour retomber sur le format iso_8061 ( https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC) ) puis laisser faire Date


let ta_date='2023-09-04 09:00:00';
let iso_date=ta_date+'Z';
let date= new Date(iso_date);