Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memaparkan nilai cap masa dalam masa standard dalam empat zon waktu menggunakan Intl.dateTimeFormat?

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粉724737511P粉724737511182 hari yang lalu352

membalas semua(1)saya akan balas

  • P粉232793765

    P粉2327937652024-04-01 00:42:27

    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

    balas
    0
  • Batalbalas