เกี่ยวกับ Unix Timestamp
Unix timestamp คือจำนวนวินาทีที่นับตั้งแต่วันที่ 1 มกราคม 1970 เวลาเที่ยงคืน UTC ซอฟต์แวร์ส่วนใหญ่นิยมใช้บันทึกจุดเวลาต่าง ๆ เนื่องจากเป็นตัวเลขเดี่ยว ๆ ที่ไม่ต้องกังวลเรื่องเขตเวลาหรือรูปแบบวันที่
ข้อควรรู้
- หน่วยวินาทีคือค่ามาตรฐาน ส่วน JavaScript จะใช้หน่วยมิลลิวินาที ตัวเลขจึงมีค่ามากกว่า 1,000 เท่า
- ค่า Timestamp จะเป็นเวลา UTC เสมอ ส่วนเวลาท้องถิ่นที่แสดงจะขึ้นอยู่กับอุปกรณ์ของคุณ
- ค่าติดลบหมายถึงวันและเวลาก่อนปี 1970
- ระบบที่ใช้ Timestamp แบบ Signed 32-bit จะเต็มขีดจำกัดในวันที่ 19 มกราคม 2038 ซึ่งแก้ปัญหาได้ด้วยการเปลี่ยนไปใช้ระบบ 64-bit
เป็นวินาทีหรือมิลลิวินาที?
ตัวเลข 10 หลักคือหน่วยวินาที ส่วน 13 หลักคือมิลลิวินาที หน้านี้จะตรวจจับรูปแบบที่คุณวางให้อัตโนมัติและแสดงผลทั้งสองแบบ
ทำไมเวลาของ Timestamp ถึงคลาดเคลื่อนไปหลายชั่วโมง?
สาเหตุส่วนใหญ่มาจากเขตเวลา (Time zone) เนื่องจาก Timestamp เป็นเวลาสากล UTC หากคุณเทียบกับเวลาท้องถิ่น ส่วนต่างที่เกิดขึ้นก็คือค่า Timezone offset ของคุณ
ปัญหาปี 2038 (Year 2038 Problem) คืออะไร?
ระบบที่จัดเก็บ Timestamp ด้วยจำนวนเต็ม Signed 32-bit จะเกิดปัญหาข้อมูลล้น (Overflow) ในวันที่ 19 มกราคม 2038 และย้อนกลับไปเป็นปี 1901 การเปลี่ยนมาใช้พื้นที่จัดเก็บแบบ 64-bit จะช่วยขจัดข้อจำกัดนี้ได้ทั้งหมดในการใช้งานจริง