แปลง Timestamp
แปลง Unix timestamp เป็นวันที่และกลับกัน
วันเวลาที่ป้อนและผลลัพธ์ท้องถิ่นใช้เขตเวลาของเบราว์เซอร์
Unix Timestamp คืออะไร?
Unix timestamp คือวิธีที่คอมพิวเตอร์ใช้เก็บเวลาแบบสากล — จำนวนวินาที (หรือมิลลิวินาที) ที่ผ่านไปนับตั้งแต่ 1 มกราคม 1970 UTC (Unix epoch) แสดงเป็นตัวเลขจำนวนเต็มง่ายๆ ระบบปฏิบัติการ ฐานข้อมูล และ API ต่างๆ ใช้มาตรฐานนี้ในการจัดการวันและเวลา เนื่องจากไม่ขึ้นกับเขตเวลา จึงเหมาะสำหรับระบบที่ใช้งานระดับนานาชาติ
ความแตกต่างระหว่างวินาทีและมิลลิวินาที
10 หลักคือวินาที (เช่น 1700000000) และ 13 หลักคือมิลลิวินาที (เช่น 1700000000000) Date.now() ใน JavaScript คืนค่าเป็นมิลลิวินาที ส่วน system call ของ Unix/Linux ใช้วินาที คุณสามารถดูจำนวนหลักเพื่อระบุหน่วยได้เลย
ทำไม timestamp จึงดีกว่าสตริงวันที่
Timestamp เป็นจำนวนเต็มธรรมดา เปรียบเทียบ เรียงลำดับ และคำนวณผลต่างได้ง่าย สตริงวันที่อย่าง YYYY-MM-DD มักก่อให้เกิดความสับสนเรื่องรูปแบบและเขตเวลา แต่ timestamp อ้างอิง UTC เสมอจึงชัดเจนไม่คลุมเครือ นอกจากนี้ยังประหยัดพื้นที่จัดเก็บและเอื้อต่อการทำ index ในฐานข้อมูล
เขตเวลาและ UTC
Unix timestamp ใช้ UTC (Coordinated Universal Time) เสมอ ประเทศไทยอยู่ในเขต UTC+7 ดังนั้นเมื่อแสดงผลต้องบวกเพิ่ม 7 ชั่วโมง แนวทางที่ดีที่สุดคือเก็บข้อมูลเป็น UTC และแปลงเป็นเวลาท้องถิ่นเฉพาะเมื่อแสดงผลให้ผู้ใช้
ปัญหา Y2K38
Unix timestamp ที่เก็บเป็นจำนวนเต็ม 32 บิตแบบมีเครื่องหมายจะล้นในวันที่ 19 มกราคม 2038 เวลา 03:14:07 UTC เรียกว่าปัญหา Y2K38 ระบบ 64 บิตไม่ได้รับผลกระทบ แต่ระบบฝังตัวและระบบเก่าๆ ยังมีความเสี่ยงและควรวางแผนอัปเกรดล่วงหน้า