typescript - Javascript: ฉันจะทำอย่างไรให้สตริงของ locale แสดงเขตเวลาของเบราว์เซอร์ในเครื่องและไม่ใช่ UTC บนฝั่งหน้าเว็บ?
ฉันมีวัตถุ dateTime ที่ฉันกำลังใช้สะท้อนสถานะของรายการ ด้านล่างนี้คือโค้ดที่ฉันมีสำหรับวัตถุนั้น:
let status = new Date(Date.parse(dateTime)).toLocaleString('en-US', {year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute:'2-digit'}))
ปัจจุบันสถานะส่งคืน ไม่คำนึงถึงโซนเวลา: 19/10/2022, 22:13 น.
ฉันอยู่ในเขตเวลา US Central Time เมื่อฉันใช้ console.log
new Date(Date.parse(dateTime))
ฉันได้รับ วันพุธที่ 19 ตุลาคม 2022 22:13:00 GMT-0500 (เวลาฤดูร้อนกลาง).
อย่างไรก็ตามเมื่อฉันเปลี่ยนเวลาคอมพิวเตอร์ของฉันเป็นเวลาตามตะวันออกของสหรัฐอเมริกา ฉันจะได้: Wed Oct 19 2022 22:13:00 GMT-0400 (Eastern Daylight Time).
นี่ไม่ถูกต้อง ผมคาดหวังว่าเวลา Eastern Time จะแสดงเป็น 11:13 PM หรือ 23:13:00 ผมควรแก้ไขโค้ดอย่างไรเพื่อให้แสดงเวลาท้องถิ่นจริงของเบราว์เซอร์
คำตอบ #1
จริงๆ แล้วฉันหาวิธีนี้ออกด้วยความช่วยเหลือจากการสาธิตนี้
ตอนนี้โค้ดของฉันอ่านได้ว่า:
let dateTime = '2022-10-19T22:13:17';
let dateInUTC = new Date(Date.parse(dateTime)).toLocaleString() + ' UTC';
let localDate = new Date(dateInUTC);
let status = localDate.toLocaleString('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit'
});
console.log(status);ถ้าฉันใช้ console.log แสดงสถานะ ฉันจะได้ 10/19/2022, 05:13 PM หากฉันเปลี่ยนเขตเวลาของคอมพิวเตอร์เป็น Eastern ฉันจะได้ 10/19/2022, 06:13 PM ซึ่งนี่คือผลลัพธ์ที่ต้องการ
