แสดงวันที่และเวลาวิธีการทำอย่างถูกต้อง
เราเจอวันที่และเวลา ... ดีทุกวัน เมื่อพูดถึงเว็บคุณสามารถพบพวกมันในแอพมือถือของคุณในอีเมลในแอพส่งข้อความและที่อื่น ๆ แม้จะมีการดูวันที่และเวลาทุกวันและทุกที่, เรายังไม่ได้นำรูปแบบสากลมาใช้.
ตัวอย่างเช่นถ้าฉันเขียน 10/05/2015 คุณไม่สามารถมั่นใจได้ว่า "10" เป็นเดือนหรือวันที่เว้นแต่ว่าฉันบอกคุณว่าฉันมาจากไหน บางครั้งรูปแบบการเปลี่ยนแปลงอื่น ๆ เวลาภาษา.
ในฐานะที่เป็นนักพัฒนาเว็บเราให้ความสำคัญกับวันและเวลาที่เราจัดการกับโครงการของเราเพื่อที่เราจะได้ ตอบสนองพวกเขาไปยังผู้อยู่อาศัยทางภูมิศาสตร์ที่แตกต่างกัน ไม่มีความขัดแย้งใด ๆ ในโพสต์นี้เราจะคุยกัน สิ่งที่ควรหลีกเลี่ยงและสิ่งที่ต้องยอมรับ เมื่อมันมาถึงการแสดงวันที่เวลา.
โลกาภิวัตน์
สมมติว่าเราไม่ต้องการแปลงและแสดงรูปแบบวันที่และเวลาที่แตกต่างกันสำหรับผู้ชมที่แตกต่างกันทั่วโลกเราจะทำอย่างไร เราเลือกหนึ่งรูปแบบทั่วโลกและติดกับมัน นี่คือที่มาของมาตรฐาน ก่อนที่เราจะไปถึงสิ่งนั้นฉันต้องแนะนำว่า W3C แนะนำให้เราใช้รูปแบบวันที่ ISO 8601 กับเขตเวลา UTC.
ISO 8601
ISO 8601 อธิบายถึงวิธีการที่ยอมรับในระดับสากลเพื่อแสดงวันที่และเวลาโดยใช้ตัวเลข.
และรูปแบบสำหรับวันที่สมบูรณ์คือ; YYYY-MM-DD
, ตัวอย่างเช่น: 2015/07/28
YYYY = ปี 4 หลัก
MM = เดือน 2 (01 = มกราคมเป็นต้น)
DD = วัน 2 หลัก (01 ถึง 31)
สำหรับวันที่และเวลาที่สมบูรณ์YYYY-MM-DDThh: mm: ss.s
, ตัวอย่างเช่น: 2015-07-28T21: 15: 18.45
T = เพื่อแยกวันที่และเวลาตาม ISO 8601
mm = 2 หลักนาที (00 ถึง 59)
ss = 2 หลักวินาที (00 ถึง 59)
s = เศษส่วนทศนิยมของวินาที, 1 หรือมากกว่าหลัก
โปรดทราบว่าไม่มีการกล่าวถึงเขตเวลาในตัวอย่างข้างต้นดังนั้นจึงควรสันนิษฐานว่าเวลาดังกล่าวอยู่ในเขตเวลาท้องถิ่น หากคุณตัดสินใจใช้เขตเวลา UTC เพียงเพิ่ม Z เป็นค่าที่แสดงถึง UTC
ตัวอย่างเช่น: 2015-07-28T21: 15: 18.45Z
แต่ถ้าคุณต้องการที่จะแสดงเวลาท้องถิ่นคุณสามารถเพิ่ม เขตเวลาชดเชย สำหรับ UTC เป็นค่าในรูปแบบ +HH: mm
หรือ -HH: mm
ตามความจำเป็น.
ตัวอย่างเช่นให้เราสมมติ 2015-07-28T21: 15: 18.45
อยู่ในเขตเวลา EST (เวลามาตรฐานตะวันออก) ซึ่งล่าช้าหลังเวลา UTC 5 ชั่วโมง.
ในการเป็นตัวแทนด้วย UTC offset เราเขียน 2015-07-28T21: 15: 18.45-05: 00
ซึ่งเทียบเท่ากับเวลา UTC 2015-07-29T02: 15: 18.45Z
.
อีกครั้ง Z ถูกต่อท้ายเพื่อแสดงว่าวันที่และเวลาที่แสดงอยู่ในเวลา UTC.
UTC กับ GMT
พวกเขาทั้งคู่เหมือนกัน แต่แตกต่างกัน ตอนนี้คุณอาจเจอ GMT อย่างน้อยหนึ่งครั้ง ขณะตั้งค่าวันที่ในโทรศัพท์มือถือหรือคอมพิวเตอร์ของคุณ เป็นเขตเวลาที่ได้รับความนิยมสูงสุดทั่วโลกเนื่องจากมีอยู่นานกว่า UTC.
ในขณะที่บางคนอาจบอกว่าพวกเขาทั้งสองเหมือนกัน แต่พวกเขาไม่ได้ UTC เป็นผู้สืบทอดของ GMT และดูแลโดยสหภาพโทรคมนาคมระหว่างประเทศ ขอแนะนำให้อ้างอิงเวลาตาม UTC และไม่ใช่ GMT.
ใช้ชื่อของเดือน
มาตรฐาน ISO ใช้ตัวเลขในการแสดงวันที่เท่านั้นเพื่อหลีกเลี่ยงความขัดแย้งทางภาษา แต่ถ้าเนื้อหาของเว็บแอปพลิเคชันของคุณเป็นภาษาอังกฤษคุณควรพิจารณาเขียนเป็นภาษาอังกฤษเป็นเดือนแทนที่จะเป็นตัวเลข.
แทน 2015/07/28
, 28, กรกฎาคม, 2015
หลายคนเข้าใจง่ายและสับสนน้อยกว่า.
การ จำกัด
มีบางครั้งที่เราต้องการเจาะจงกับบริการของเรามากและต้องการแสดงวันที่และเวลาในเขตเวลาและภาษาท้องถิ่น มีไลบรารีและ API จำนวนมากที่นักพัฒนาเว็บสามารถใช้และแสดงวันที่และเวลาตามภูมิภาคที่เข้าถึงได้.
คุณสามารถรับภาษาเริ่มต้นของเบราว์เซอร์ได้โดยการตีความ ยอมรับภาษา
ขอส่วนหัวหรือผ่านทาง navigator.language หรือ navigator.browserLanguage
วัตถุ JavaScript แต่วิธีที่ดีที่สุดคือ ให้ผู้ใช้เลือกภาษาในแอปพลิเคชันของคุณ เนื่องจากวิธีการก่อนหน้านี้ไม่น่าเชื่อถือมาก.
เมื่อคุณมีโลแคลแล้วคุณสามารถจัดรูปแบบวันที่ตามเวลาได้ตัวอย่างเช่นการใช้ API สากล, คุณสามารถจัดรูปแบบวันที่โดยใช้ toLocaleDateString
ในจาวาสคริปต์เช่น, myDate.toLocaleDateString (Ko-KR)
จะส่งคืนวันที่จัดรูปแบบในรูปแบบที่ใช้ในเกาหลีโดยชาวเกาหลีที่พูดภาษาเกาหลี.
เวลาออมแสง (DST)
ในบางประเทศการปรับเวลาตามฤดูกาลทำได้โดยการส่งต่อนาฬิกาเป็นเวลาหนึ่งชั่วโมงในฤดูร้อนเพื่อใช้ประโยชน์จากแสงแดดที่มีให้ ระวัง DST เพื่อให้ทันกับเวลาท้องถิ่นในบริการของคุณ.
ไม่มีปีสองหลัก
ในขณะที่การปรับแต่งวันที่และเวลาสำหรับการแปลไม่ใช้รูปแบบตัวเลขสองหลักสำหรับปี ณ จุดใด ๆ เรามีอยู่แล้วในศตวรรษที่ 21 ใช้เวลาหลายปีเช่น 64
, 99
ฯลฯ จะลำบากในอนาคต หากคุณมีระบบปีสองหลักอยู่แล้วให้พิจารณาเปลี่ยน.
Leap Year and Calendars อื่น ๆ
ให้เราจบโพสต์นี้ด้วยสิ่งต่าง ๆ ที่ต้องจำในขณะที่จัดการกับวันที่ หากคุณไม่ได้ใช้ไลบรารีหรือ API สำหรับวันที่และต้องการจัดการกับมันด้วยตัวคุณเอง (ซึ่งก็คือ ไม่ ยังคงแนะนำ) อย่าลืมที่จะแสดง 29 กุมภาพันธ์ในการป้อนข้อมูลสำหรับปีอธิกสุรทิน.
นอกจากนี้ยังเป็นที่น่าสังเกตว่า ปฏิทินเกรโกเรียนไม่ใช่เพียงรูปแบบเดียวของปฏิทินที่มีและใช้ได้ ทั่วทุกมุมโลก. มีปฏิทินระดับภูมิภาคบางแห่งที่ชาวเมืองปฏิบัติตามโดยเฉพาะอย่างยิ่งเมื่อมีการเฉลิมฉลอง.
อ้างอิง
- สหภาพโทรคมนาคมระหว่างประเทศ: สถานะของการศึกษาเวลาสากลเชิงพิกัด (UTC) ใน ITU-R
- ISO: ISO 8601 - รูปแบบวันที่และเวลา
- Wikipedia: เวลาสากลเชิงพิกัด
- Wikipedia: เวลาออมแสง
- Wikipedia: เวลามาตรฐานกรีนนิช
- W3C หมายเหตุ: รูปแบบวันที่และเวลา
- เคล็ดลับ W3C: ใช้รูปแบบวันที่สากล (ISO)