Chaque colonne est un décalage fixe par rapport à UTC, de GMT−12 à GMT+14, recalculée chaque seconde d’après l’horloge de l’appareil. Les repères +1 et −1 indiquent où la date a déjà changé.
Fonctionne localement dans votre navigateurUne colonne par heure entière de décalage avec UTC, de GMT−12 à GMT+14 : 27 horloges sur un seul écran, recalculées chaque seconde d’après l’horloge de votre propre appareil. Une case vaut l’heure de l’appareil plus son décalage : le nombre affiché est donc l’heure actuelle de ce décalage.
Les colonnes portent des décalages et non des noms de villes, volontairement : un nom de ville est faux la moitié de l’année partout où l’heure d’été s’applique. La ligne du haut reprend l’heure et la date de votre appareil, et c’est la référence de toutes les autres colonnes.
Chaque case est un décalage fixe par rapport à UTC : l’heure de l’appareil plus ou moins un nombre entier d’heures. C’est tout ce que dit l’étiquette GMT : GMT+5 précède UTC de cinq heures toute l’année, quelle que soit la date ou la saison. La table reste donc juste les week-ends où une grande partie du monde change d’heure : le calcul derrière chaque colonne ne change jamais.
Ce qu’une colonne ne fait pas, c’est nommer un fuseau. Berlin occupe la colonne GMT+1 en hiver et la colonne GMT+2 en été ; New York passe de GMT−5 à GMT−4 à ces mêmes dates. Une colonne indique où l’horloge affiche ce décalage, pas où se trouve une ville précise un jour précis.
Les fuseaux à la demi-heure et aux trois quarts d’heure n’ont pas de colonne ici : l’Inde est à UTC+5:30, le Népal à UTC+5:45 et Terre-Neuve à UTC−3:30 pendant son heure normale. Sur une grille d’heures entières, ces endroits tombent entre deux colonnes et n’obtiennent jamais de ligne à eux.
La grille va de −12 à +14, soit toute la plage d’heures entières utilisée : l’île Baker à −12, Kiritimati à +14. Quand une heure doit être exacte pour l’un de ces décalages absents, passez à un convertisseur qui applique les règles IANA : une table de décalages fixes ne peut pas répondre d’une région nommée.
En tête de table se trouve votre propre appareil : son heure et sa date au format de la langue du navigateur. Les repères +1 et −1 sous une horloge comparent la date de ce décalage à cette ligne : sur un appareil à Shanghai à 04:38 le 17 septembre, GMT−12 à GMT+3 indiquaient encore la veille, tandis que GMT+4 avait déjà passé minuit.
Les 27 champs de décalage sont en lecture seule : c’est la page qui écrit l’heure dedans, et un clic mal placé ne peut pas écraser une horloge en marche. Il n’y a rien à saisir non plus : la page se résume à cette table et n’envoie rien.
Chaque colonne est calculée par un script de la page à partir de valeurs que le navigateur possède déjà — l’horloge de l’appareil et le décalage —, aucune requête n’est donc nécessaire pour faire avancer les horloges. Passez le navigateur hors connexion après le chargement : les 27 colonnes continuent de tourner.
Deux éléments décident de la précision, et tous deux vous appartiennent : l’horloge de l’appareil, dont chaque colonne est déduite, et la langue du navigateur, qui met en forme la date du haut. Une horloge décalée de quelques minutes décale toutes les colonnes d’autant.