CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[node.js] détecté fuseau horaire (utc)

TrollDieu
TrollDieu
Niveau 6
16 septembre 2014 à 14:13:09

Salut, j'essaye de faire un petit site multilingue et donc pouvoir modifier l'heure des article en fonction du fuseaux horaire, et donc je me demander comment savoir l'utc/time zone du visiteur ? :snif:

On pourrais le faire coté client, mai pour la première visite ou pour tout nouvelle session l'heure serais fausse.

Le faire a l'aide du "Accept-Language" dans la requête HTTP, ce qui peux être bien pour beaucoups de pays, mais ne géré par les USA qui on 4 fuseaux horaire, (je me demande comment il arrive a géré ça).

j'ai vue qu'il existais des technique avec les ip, mai j'ai pas trouvée d'information intéressent.

Merci de votre aide, j'aurais jamais pensée que les fuseaux horaire étais un casse tête a ce point, ça serais si simple si il y avais la time zone dans la requête HTTP

lisarael
lisarael
Niveau 13
16 septembre 2014 à 14:33:03

Hey,

J'ai eu le même cas de figure sur un gros site en développement.

En analysant les types de visite, j'ai isolé trois comportements :
- les visiteurs anonymes qui arrivaient pour la première fois sur le site
- les visiteurs anonymes qui étaient déjà venus
- les visiteurs authentifiés

Comme tu l'as bien dit, on peut récupérer la timezone du client via javascript, tu peux donc l'ajouter au compte d'un utilisateur ou dans un cookie pour les utilisateurs anonymes. Mais pour les utilisateurs anonymes qui n'ont pas encore visité ton site, la méthode la plus simple reste effectivement l'utilisation de l'ip et des techniques de geoip.
C'est un peu gourmand en terme de performance, mais c'est pas la mort non plus (ça n'a pas d'impact visuel), et comme tu ne le fais qu'une fois par utilisateur, c'est pas un drame.
Pour ma part, j'ai utilisé le package npm geoip-lite ( https://www.npmjs.org/package/geoip-lite ), dont je suis très content.

C'est la seule solution viable, au sens où, pour le moment, y a aucun autre moyen de connaître la timezone d'un visiteur dont on ne sait rien.

lisarael
lisarael
Niveau 13
16 septembre 2014 à 14:36:58

Ah, sorry, j'oubliais, avec le package geoip-lite, tu n'as pas les informations de timezone, tu dois donc utiliser en plus le module tz-lookup ( https://www.npmjs.org/package/tz-lookup ) qui va te retourner la bonne timezone en fonction des informations données par geoip-lite.

TrollDieu
TrollDieu
Niveau 6
16 septembre 2014 à 15:28:23

merci beaucoups lisarael, les deux package on l'aire vraiment pas mal, j'aurais plus cas couplée ça avec les cookie.

sinon ça va peux être te paraître bête mai pour l'affichage c'est quoi le mieux? (j'avais vue moment.js mai il a l'air un peux chiant a utilisé avec ejs).

lisarael
lisarael
Niveau 13
16 septembre 2014 à 15:45:38

Pour l'affichage des dates, j'utilise moment.js pasqu'il est relativement pratique à configurer, mais j'avais fait une petite fonction "wrapper" histoire de me faciliter la tache dans mes templates, puisque j'utilise les même paramètres pour moment.js partout dans le site (pour les templates, je préfère jade, personnellement).

vava740
vava740
Niveau 10
17 septembre 2014 à 10:30:37

Je déconseille d'utiliser l'IP et l'Accept-Language pour ça. J'ai pas envie d'avoir un décalage horaire aberrant parce que j'utilise un VPN en Argentine, ou parce que mon système est en en_US alors que je suis en France. :(

À ta place je mettrais la date avec la timezone dans un <date> avec l'attribut datetime qui va bien, puis j'adapterais à la timezone de l'utilisateur en JS dans le navigateur.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment