PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 25 → Comment récupérer le fuseau horaire de l'utilisateur Web ?
Comment récupérer le fuseau horaire de l'utilisateur Web ?
Débuté par Patrice RAUCQ, 20 nov. 2020 01:42 - 6 réponses
Membre enregistré
14 messages
Posté le 20 novembre 2020 - 01:42
Bonjour,

Me trouvant dans un fuseau GMT-10, j'utilise la fonction DateHeureLocaleVersFuseau() afin d'avoir la date locale plutôt que la date du serveur de mon hébergeur qui est sur un autre fuseau horaire.

Pour le moment, je saisis "en dur" le nom de mon fuseau horaire ce qui fonctionne mais me gêne un peu.
Serait-il possible de récupérer le nom du fuseau horaire de l'utilisateur Web par programmation ?

Merci pour votre aide, bonne journée.

Cordialement,

Patrice

--
-----------
WD 25
Windows 10
Membre enregistré
1 491 messages
Popularité : +9 (11 votes)
Posté le 20 novembre 2020 - 08:14
Bonjour,

DateHeureSys fonctionne en code navigateur depuis la version 25. Il est aussi possible de convertir la dateheuresysteme du serveur en temps UTC. Il est donc possible de récupérer la valeur du fuseau horaire.

--
Cordialement
François
Membre enregistré
14 messages
Posté le 20 novembre 2020 - 20:29
Bonjour François,

Merci pour cette réponse.
J'avais en effet vu que DateHeureSys fonctionnait en code navigateur depuis la version 25.
J'ai aussi testé la fonction DateHeureUTCVersLocale().
Malheureusement je n'ai pas réussi à obtenir la bonne date lors de mes tests, je dois rater quelque chose.
Je suppose que je n'ai pas initialisé mes champs dates au bon endroit, dans quel événement me conseilles-tu de placer ce code ?

Cependant, la fonction DateHeureLocaleVersFuseau() me donnant entière satisfaction, j'aimerais quand-même pouvoir récupérer le nom du fuseau horaire, si quelqu'un a une idée, je suis preneur.

Merci et bonne journée.

Cordialement,
Patrice

--
-----------
WD 25
Windows 10
Membre enregistré
14 messages
Posté le 21 novembre 2020 - 00:33
Je me réponds ...

L'événement navigateur qui fonctionne est sur le onload de la page.
Le champ date est bien initialisé avec la date du navigateur.
Mais ensuite, j'ai besoin de cette date pour l'ouverture d'une autre page, via un code serveur.
Malheureusement, d'après l'aide WB, le type date ne peut être synchronisé entre le navigateur et un code serveur.
J'ai donc tenté une conversion DateHeureVersRéel() en utilisant une variable globale à la page de type réel.
Mais étonnamment, le passage vers un réel me donne un jour de décalage.
Bref, récupérer le nom du fuseau horaire m'aiderait bien.

Patrice

--
-----------
WD 25
Windows 10
Membre enregistré
14 messages
Posté le 21 novembre 2020 - 06:20
Je continue ...

Utiliser une variable Chaîne semble être la solution.
Je teste et je fais un compte-rendu.

Patrice

--
-----------
WD 25
Windows 10
Membre enregistré
744 messages
Posté le 21 novembre 2020 - 16:53
Bonjour Patrice,

Dans une fonction navigateur de type Javascript
function getTimezoneName()
{
return Intl.DateTimeFormat().resolvedOptions().timeZone
}




---
#lapiraterienestjamaisfinie

Patrice RAUCQ: Te trouvant dans un fuseau GMT-10, peut être sera-tu intéresser ?
https://forum.pcsoft.fr/fr-FR/pcsoft.fr.horssujet/8666-polynesie-francaise/read.awp
Membre enregistré
14 messages
Posté le 22 novembre 2020 - 00:46
Bonjour,

Finalement, je reste sur l'idée de François, avec une variable navigateur synchronisée avec le serveur.

Je joins une capture du code utilisé.

Merci à tous.
Cordialement.
Patrice




--
-----------
WD 25
Windows 10