Comment afficher la valeur d'un horodatage à l'heure standard dans quatre fuseaux horaires à l'aide de Intl.dateTimeFormat ?
P粉724737511
P粉724737511 2024-03-31 12:28:02
0
1
490

Je souhaite pouvoir afficher un horodatage dans le fuseau horaire indiqué par l'utilisateur. J'ai remarqué que même avec une bibliothèque dédiée comme date-fns-tz, elle semble renvoyer des valeurs qui n'ont aucun sens.

Sous le capot, ils utilisent apparemment Intl et lorsque j'utilise le module, il ne semble pas fournir la valeur correcte.

const zones = ['PST', 'MST', 'CST', 'EST'];
zones.forEach((timeZone) =>
  console.log(
    new Intl.DateTimeFormat('en-US', {
      timeZone,
      timeStyle: 'full',
      dateStyle: 'full',
    }).format(1588743894000)
  )
);

Sortie :

Tuesday, May 5, 2020 at 10:44:54 PM Pacific Daylight Time
Tuesday, May 5, 2020 at 10:44:54 PM GMT-07:00
Wednesday, May 6, 2020 at 12:44:54 AM Central Daylight Time
Wednesday, May 6, 2020 at 12:44:54 AM GMT-05:00

Mais cela ne devrait-il pas être quatre valeurs différentes ?

P粉724737511
P粉724737511

répondre à tous(1)
P粉232793765

Vous spécifiez une abréviation de fuseau horaire à trois lettres, qui attend le fuseau horaire IANA (https://tc39.es/ecma402/#sec-time-zone-names). Je pense que c'est confus car vous dépassez le fuseau horaire standard pendant la journée.

const zones = ["America/Los_Angeles", "America/Denver", "America/Chicago", "America/New_York"]
zones.forEach(timeZone => 
console.log(new Intl.DateTimeFormat('en-US', { timeZone, timeStyle: "full", dateStyle: "full"}).format(1588743894000)));

Cela produit :

Tuesday, May 5, 2020 at 10:44:54 PM Pacific Daylight Time
Tuesday, May 5, 2020 at 11:44:54 PM Mountain Daylight Time
Wednesday, May 6, 2020 at 12:44:54 AM Central Daylight Time
Wednesday, May 6, 2020 at 1:44:54 AM Eastern Daylight Time
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal