tooliv

แปลง Timestamp

แปลง Unix timestamp เป็นวันที่และกลับกัน

แปลง Timestamp

ทำไม Unix time ถึงเริ่มต้นในปี 1970?

Unix ถูกพัฒนาในปี 1969-1970 นักพัฒนาเลือก 1 มกราคม 1970 เป็นจุดอ้างอิงเพราะสะดวกและง่ายต่อการประมวลผลบนคอมพิวเตอร์ในยุคนั้น

Unix timestamp ติดลบหมายความว่าอะไร?

แสดงถึงวันที่ก่อน 1 มกราคม 1970 เช่น -86400 คือวันที่ 31 ธันวาคม 1969 JavaScript ก็สามารถจัดการ timestamp ติดลบได้อย่างถูกต้อง

จะได้ timestamp ใน JavaScript ได้อย่างไร?

ใช้ Date.now() เพื่อได้ timestamp หน่วยมิลลิวินาที หรือ Math.floor(Date.now()/1000) สำหรับหน่วยวินาที new Date().getTime() ให้ค่าเดียวกับ Date.now()

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 บิตไม่ได้รับผลกระทบ แต่ระบบฝังตัวและระบบเก่าๆ ยังมีความเสี่ยงและควรวางแผนอัปเกรดล่วงหน้า

คำถามที่พบบ่อย

ทำไม Unix time ถึงเริ่มต้นในปี 1970?

Unix ถูกพัฒนาในปี 1969-1970 นักพัฒนาเลือก 1 มกราคม 1970 เป็นจุดอ้างอิงเพราะสะดวกและง่ายต่อการประมวลผลบนคอมพิวเตอร์ในยุคนั้น

Unix timestamp ติดลบหมายความว่าอะไร?

แสดงถึงวันที่ก่อน 1 มกราคม 1970 เช่น -86400 คือวันที่ 31 ธันวาคม 1969 JavaScript ก็สามารถจัดการ timestamp ติดลบได้อย่างถูกต้อง

จะได้ timestamp ใน JavaScript ได้อย่างไร?

ใช้ Date.now() เพื่อได้ timestamp หน่วยมิลลิวินาที หรือ Math.floor(Date.now()/1000) สำหรับหน่วยวินาที new Date().getTime() ให้ค่าเดียวกับ Date.now()

เครื่องมือที่เกี่ยวข้อง