Bagaimana untuk memaparkan nilai cap masa dalam masa standard dalam empat zon waktu menggunakan Intl.dateTimeFormat?
P粉724737511
P粉724737511 2024-03-31 12:28:02
0
1
485

Saya mahu dapat memaparkan cap masa dalam zon waktu yang diberikan oleh pengguna. Saya perasan bahawa walaupun dengan perpustakaan khusus seperti date-fns-tz ia nampaknya mengembalikan nilai yang tidak masuk akal.

Di bawah tudung mereka nampaknya menggunakan Intl dan apabila saya menggunakan modul itu nampaknya tidak memberikan nilai yang betul.

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

Keluaran:

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

Tetapi bukankah itu sepatutnya empat nilai yang berbeza?

P粉724737511
P粉724737511

membalas semua(1)
P粉232793765

Anda menyatakan singkatan zon waktu tiga huruf, yang menjangkakan zon waktu IANA (https://tc39.es/ecma402/#sec-time-zone-names). Saya percaya ia keliru kerana anda melepasi zon waktu standard pada siang hari.

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)));

Ini menghasilkan:

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan