Fermer

février 15, 2024

Quelle heure est-il? Comment nos systèmes affichent, calculent, formatent et synchronisent les dates et les heures

Quelle heure est-il?  Comment nos systèmes affichent, calculent, formatent et synchronisent les dates et les heures


Cela semble être une question simple, mais vous seriez surpris de voir à quel point l’infrastructure est complexe et vous permet d’obtenir une heure précise. Lorsque vos utilisateurs existent sur plusieurs fuseaux horaires ou même voyagent à travers des fuseaux horaires tout en utilisant vos systèmes, on s’attend à ce que tout fonctionne de manière transparente.

Mais ce n’est pas simple.

Exemple : Vous avez un employé à Phoenix qui doit planifier un e-mail le lundi à 8h00 pour son entreprise à Los Angeles. Phoenix ne s’adapte pas à l’heure d’été ; Los Angeles le fait. Et qu’en est-il des destinataires ? Doivent-ils recevoir l’e-mail à 8h00 le lundi dans leur fuseau horaire respectif ? Ou les abonnés à New York recevront-ils leur e-mail à 11h00 HNE lundi ?

Comment l’heure est affichée sur votre ordinateur

  • Système opérateur (Système d’exploitation) – Votre système d’exploitation recherche l’heure à partir de son horloge en temps réel (RTC). Il ajuste le format de la date en fonction de vos paramètres régionaux et l’heure de votre fuseau horaire approprié, généralement déterminé par l’emplacement de votre appareil.
    • Formats de dates – Il existe plusieurs formats de date courants, notamment :
      • La date du calendrier grégorien (AAAA-MM-JJ), par exemple 2022-02-08
      • La date de style américain (MM/JJ/AAAA), par exemple 02/08/2022
      • La date de style européen (JJ/MM/AAAA), par exemple 08/02/2022
    • Fuseaux horaires – Il existe 24 fuseaux horaires dans le monde, chacun étant distant d’environ 15 degrés de longitude l’un de l’autre. Les fuseaux horaires divisent le monde en régions ayant la même heure standard afin que les habitants de chaque fuseau horaire puissent avoir une heure commune pour leurs activités quotidiennes.
    • Heure d’été – Dans les régions qui observent l’heure d’été, les horloges sont avancées d’une heure au printemps et reculées d’une heure à l’automne. Cela se traduit par une heure supplémentaire de lumière du jour le soir pendant les mois d’été, mais cela signifie également que le soleil se lève et se couche une heure plus tôt respectivement le matin et le soir pendant les mois d’hiver.
  • Horloge en temps réel (RTC) – votre ordinateur maintient l’heure, même lorsqu’il est éteint, à l’aide d’une puce appelée RTC. Lorsqu’elle n’est pas alimentée, une petite batterie au lithium maintient la puce en marche (jeu de mots) et peut l’alimenter jusqu’à une décennie sans charge.
  • Protocole de temps réseau (NTP) – lorsque les systèmes d’exploitation disposent d’une connexion établie à Internet, ils utilisent NTP pour synchroniser leurs horloges avec un pool de serveurs de temps, y compris ceux fournis par Protocole de temps réseau. Par défaut, Windows se synchronise avec les serveurs NTP une fois tous les 7 jours, tandis que macOS se synchronise une fois toutes les heures. Les NTP maintiennent leur heure en utilisant le temps universel coordonné (UTC). Lorsqu’un client demande l’heure actuelle à un serveur NTP, le serveur répond avec une valeur de 64 bits représentant le nombre de secondes écoulées depuis le 1er janvier 1900 à 00:00:00 UTC.
  • Temps universel coordonné (UTC) – une heure standardisée utilisée comme base pour tout chronométrage dans le monde. Il est basé sur le Temps atomique international (TAI), qui mesure le temps moyen écoulé entre deux points spécifiques des orbites de la Lune terrestre. L’UTC a été mis en œuvre pour la première fois en 1972 en tant que successeur du TAI et du Greenwich Mean Time (GMT). L’UTC est maintenu à moins de 0,9 seconde de l’échelle de temps TAI et sa précision est maintenue grâce à l’utilisation d’horloges atomiques et d’autres technologies de chronométrage.
    • Les fuseaux horaires 24 UTC sont divisés en compenser catégories où chaque décalage est l’ajustement pour l’heure appropriée en heures : UTC-12, UTC-11, UTC-10, UTC-9, UTC-8, UTC-7, UTC-6, UTC-5, UTC-4, UTC-3, UTC-2, UTC-1, UTC, UTC+1, UTC+2, UTC+3, UTC+4, UTC+5, UTC+6, UTC+7, UTC+8, UTC+9, UTC+10 et UTC+11.
fuseaux horaires UTC
  • Heure atomique internationale (CE) – une norme de temps basée sur le temps moyen écoulé entre deux points spécifiques sur les orbites de la lune terrestre. Le TAI est l’une des échelles de temps les plus précises et les plus stables disponibles, et il est maintenu par le Bureau international des poids et mesures.
  • Horloges atomiques – sont des chronomètres très précis qui utilisent les vibrations naturelles des atomes pour mesurer le temps. Le type d’horloge atomique le plus courant est l’horloge atomique au césium, qui utilise les vibrations des atomes de césium pour indiquer l’heure. La précision d’une horloge atomique est maintenue par la stabilité de la fréquence du rayonnement électromagnétique émis par les atomes de césium. Cette fréquence est si stable qu’elle ne change que d’une fraction de seconde sur des milliers d’années. La fréquence du rayonnement électromagnétique est ensuite comparée à un oscillateur à quartz, utilisé pour contrôler un compteur. Le compteur compte le nombre de cycles de rayonnement électromagnétique et ce nombre est utilisé pour calculer le temps. Le compteur est constamment corrigé pour garantir qu’il reste synchronisé avec les vibrations des atomes de césium.

Les systèmes modernes enregistrent souvent les heures sous forme d’horodatages Unix. Un horodatage Unix est une représentation numérique d’un moment spécifique, mesuré comme le nombre de secondes écoulées depuis le 1er janvier 1970, à 00:00:00 UTC. Les horodatages Unix sont largement utilisés dans les systèmes informatiques car ils sont simples à utiliser et peuvent facilement être comparés, triés et manipulés. Ils sont également indépendants des fuseaux horaires, ce qui signifie qu’ils fournissent une représentation standardisée de l’heure qui peut être utilisée dans différentes régions géographiques.

Alors… lorsque vous vérifiez l’heure, vous affichez

Travailler avec des dates en PHP

J’ai déjà écrit sur la façon de afficher par programmation l’année de votre déclaration de droits d’auteur afin que vous n’ayez pas à le mettre à jour chaque année. Cependant, vous pouvez faire bien plus avec les dates. Voici quelques exemples:

Afficher la date comme 2023-02-08:

$current_date = date("Y-m-d");
echo $current_date;

Afficher la date sous forme d’horodatage 1612684800:

$timestamp = strtotime("2023-02-08");
echo $timestamp;

Afficher la date et l’heure au format UTC au lieu du fuseau horaire local comme 2023-02-08 15:25:00:

$utc_date = gmdate("Y-m-d H:i:s");
echo $utc_date;

Afficher l’horodatage Unix actuel comme 1612742153:

$current_timestamp = time();
echo $current_timestamp;

Le fuseau horaire par défaut est Los Angeles, puis affichez la date et l’heure comme 2023-02-08 07:25:00:

date_default_timezone_set("America/Los_Angeles");
$date = date("Y-m-d H:i:s");
echo $date;

Organiser les caractères du format de date PHP en groupes logiques, chaque groupe étant classé par ordre alphabétique et les caractères de format sous forme de sous-puces :

  • Jour
    • d – Jour du mois, 2 chiffres avec des zéros non significatifs (01 à 31). Exemple: 15
    • D – Une représentation textuelle d’un jour, trois lettres (du lundi au dimanche). Exemple: Thu
    • j – Jour du mois sans zéros non significatifs (1 à 31). Exemple: 15
    • l (‘L’ minuscule) – Une représentation textuelle complète du jour de la semaine (du dimanche au samedi). Exemple: Thursday
    • S – Suffixe ordinal anglais pour le jour du mois, 2 caractères (st, nd, rd ou th). Exemple: th
    • w – Représentation numérique du jour de la semaine (0 (pour dimanche) à 6 (pour samedi)). Exemple: 4
    • z – Le jour de l’année (à partir de 0). L’exemple de la date actuelle peut ne pas être précis sans calculs exacts.
  • Mois
    • F – Une représentation textuelle complète d’un mois (de janvier à décembre). Exemple: February
    • m – Représentation numérique d’un mois, avec des zéros non significatifs (01 à 12). Exemple: 02
    • M – Une courte représentation textuelle d’un mois, trois lettres (de janvier à décembre). Exemple: Feb
    • n – Représentation numérique d’un mois, sans zéros non significatifs (1 à 12). Exemple: 2
    • t – Nombre de jours dans le mois donné (28 à 31). Exemple: 28
  • Semaine
    • W – Numéro de semaine ISO-8601 de l’année, semaines commençant le lundi (Exemple : 42, la 42e semaine de l’année). L’exemple de la date actuelle peut ne pas être précis sans calculs exacts.
  • Année
    • o – Année de numérotation des semaines ISO-8601. Cela a la même valeur que Y, sauf que si le numéro de semaine ISO (W) appartient à l’année précédente ou suivante, cette année est utilisée à la place. Exemple: 2024
    • Y – Une représentation numérique complète d’une année, 4 chiffres. Exemple: 2024
    • y – Une représentation à deux chiffres d’une année. Exemple: 24
  • Fuseau horaire
    • T – Abréviation du fuseau horaire. Exemple: EST
    • e – Identifiant du fuseau horaire. Exemple: America/New_York
    • P – Différence par rapport à l’heure de Greenwich (GMT) avec deux points entre les heures et les minutes. Exemple: -04:00
    • O – Différence par rapport à l’heure de Greenwich (GMT) sans deux-points entre les heures et les minutes. Exemple: -0400
    • Z – Décalage du fuseau horaire en secondes. Le décalage pour les fuseaux horaires à l’ouest de UTC est toujours négatif et pour ceux à l’est de UTC, il est toujours positif. Exemple: -14400 (for EST)

Chaque langue a ses fonctions pour fonctionner avec l’UTC, les horodatages, les formats d’affichage, les fuseaux horaires et l’heure d’été. Si vous développez une plate-forme, vous devrez accorder une grande attention à la façon dont vous stockez les données temporelles ainsi qu’à la façon dont vous les formatez et les affichez. Si vous êtes une entreprise, vous voudrez vous assurer que vos plates-formes peuvent gérer le travail sur plusieurs fuseaux horaires, afficher les formats appropriés pour vos utilisateurs et gérer les ajustements de l’heure d’été.

Alors… quelle heure est-il ?

Mon système d’exploitation formate la date et l’heure au 15 février 2024, 10h25. L’heure a été ajustée d’un horodatage Unix à mon fuseau horaire, ajusté pour l’heure d’été. Cette heure a été synchronisée au cours de la dernière heure depuis MacOS avec un serveur NTP en UTC et ajustée pour rester dans les 0,9 seconde avec TAI et les horloges atomiques. Tout cela, bien sûr, est une heure précise fournie pour ma position par rapport à la Terre, à la Lune et au Soleil… ajustée à l’heure d’été.




Source link