บทนำสู่ UTC วันที่
JavaScript มีฟังก์ชันจำนวนหนึ่งที่จัดการกับเวลา UTC แต่เวลา UTC คืออะไร ตามหอสังเกตการณ์กองทัพเรือสหรัฐฯ (US Navel Observatory) เวลา UTC เป็น "เวลาสากลเชิงพิกัด (Coordinated Universal Time)" ระดับเวลาเชิงพิกัดเชิงพิกัด (Coordinated Universal Time) "จัดทำโดยห้องปฏิบัติการเวลาทั่วโลก ... กำหนดโดยใช้นาฬิกาอะตอมที่แม่นยำสูง" นี่คือประมาณเดียวกันกับเวลามาตรฐานกรีนิช (GMT) แต่มีความแม่นยำมากขึ้น มีหลายประเทศเช่นโมร็อกโกไอซ์แลนด์และมาลี ใช้ UTC เป็นเวลาทางแพ่งโดยตรง ในช่วงฤดูหนาว UTC เป็นเวลาของสหราชอาณาจักร เวลาพลเรือนของสหรัฐอเมริกาถูกกำหนดโดยจำนวนชั่วโมงที่ตั้งค่าไว้ชดเชยจาก UTC ตัวอย่างเช่นแอริโซนา (ซึ่งไม่เก็บเวลาออมแสง) เป็น UTC + 7 เสมอ ปักกิ่ง, เขตเวลาของจีนคือ UTC-8 (เราจะใช้สิ่งนี้ในตัวอย่างด้านล่าง)

วิธีวันที่ JavaScript ส่วนใหญ่มีวิธีเทียบเท่าที่เกี่ยวข้องกับเวลา UTC มากกว่าเวลาท้องถิ่น ตัวอย่างเช่น getHours () ส่งคืนชั่วโมงในเวลาท้องถิ่นขณะที่ getUTCHours () ส่งคืนชั่วโมงในเวลา UTC คุณสามารถรับวัตถุ Date ในรูปแบบที่มนุษย์อ่านได้ซึ่งสัมพันธ์กับเวลาท้องถิ่นโดยใช้ toLocaleString () และสัมพันธ์กับ UTC โดยใช้ toUTCString () วัตถุวันที่ของ JavaScript ยังมีวิธีการชื่อ UTC วิธี UTC () เป็นวิธีสแตติกที่ใช้ในการแปลงวันที่ในรูปแบบเฉพาะเป็นมิลลิวินาทีตั้งแต่ 1 มกราคม 1970 (สัมพันธ์กับ UTC) จากนั้นคุณสามารถใช้ตัวสร้าง Date () เพื่อสร้างวัตถุ Date ด้วยค่านี้

ตัวอย่างเช่นประเทศจีนได้ประกาศว่าพิธีเปิดการแข่งขันกีฬาโอลิมปิกปี 2008 จะจัดขึ้นในวันที่ 8 สิงหาคม 2551 เวลา 20:08 น. เราสามารถใช้วิธี UTC () ของ JavaScript เพื่อค้นหาเวลาที่อยู่ในเวลาท้องถิ่น

var offset = -8; // ชดเชยจาก UTC
var luckyday = new Date (Date.UTC (2008,7,8, (20+ offset), 8);
document.write ("การแข่งขันกีฬาโอลิมปิกปี 2008 เริ่มต้นที่" + luckyday.toUTCString ());
document.write ("ในเวลาท้องถิ่นนี่คือ" + luckyday.toLocaleString ())

บันทึก: ในตัวอย่างข้างต้นฉันแปลงจากเวลาปักกิ่งเป็น UTC โดยการเพิ่มออฟเซ็ตจาก UTC ("-8") เป็นเวลาปักกิ่ง - นี่คือเหตุผลที่อาร์กิวเมนต์ 4 ของวันที่ UTC อ่าน "(20 + ออฟเซ็ต)" ด้านบน

หากคุณมี JavaScript ในเบราว์เซอร์ของคุณคุณสามารถดูตัวอย่างสดของรหัสนี้ได้ที่นี่


REFERENCE

Date.UTC ( ปี, เดือน [, วัน, [ชั่วโมง, [นาที, [วินาที, [มิลลิวินาที]]]]])

แปลงวันที่ที่ระบุเป็นมิลลิวินาทีตั้งแต่วันที่ 1 มกราคม 1970

บันทึก: อาร์กิวเมนต์ทั้งหมดเป็นตัวเลข เช่นเคยใน JavaScript เดือนของ 0 คือมกราคม หากมีการโต้แย้งใด ๆ นอกเหนือจากปีเป็นจำนวนที่มากกว่าหรือน้อยกว่าที่เป็นไปได้สำหรับค่าที่มันหมายถึงมันจะถูกใช้เพื่อส่งผลกระทบต่อการโต้แย้งที่มีขนาดใหญ่ต่อไป - ตัวอย่างเช่นเดือน 13 ถูกตีความว่าเป็นเดือนกุมภาพันธ์ของปีถัดไป -2 ถูกตีความว่าเป็นเดือนพฤศจิกายนของปีที่แล้ว

แหล่งที่มา

หอสังเกตการณ์กองทัพเรือสหรัฐอเมริกา "เวลาสากลคืออะไร" 30 ตุลาคม 2546 แผนกหอสังเกตการณ์กองทัพเรือสหรัฐฯ 6 กรกฎาคม 2550