ตัวแปลง Unix Timestamp คืออะไร?
ตัวแปลง Unix Timestamp เป็นเครื่องมือพัฒนาที่จำเป็นซึ่งเชื่อมโยงเวลา epoch ที่เครื่องอ่านได้กับวันที่ที่มนุษย์อ่านได้ เวลา Unix (เรียกอีกอย่างว่าเวลา epoch) วัดจำนวนวินาทีที่ผ่านไปตั้งแต่วันที่ 1 มกราคม 1970 00:00:00 UTC — ช่วงเวลาที่ระบบปฏิบัติการ Unix เริ่มทำงานครั้งแรกบนคอมพิวเตอร์ PDP-11 ที่ Bell Labs วันที่นี้เรียกว่า Unix Epoch และทำหน้าที่เป็นจุดศูนย์กลางสากลสำหรับการวัดเวลาในการคำนวณ ตัวแปลงทำงานในสองทิศทาง: ป้อน Unix timestamp (โดยปกติจะเป็นตัวเลข 10 หลักสำหรับวินาทีหรือ 13 หลักสำหรับมิลลิวินาที) เพื่อดูวันที่ที่อ่านได้ที่สอดคล้องกัน หรือป้อนวันที่และเวลาเพื่อรับ Unix timestamp ที่เทียบเท่า การแสดง Unix timestamp ปัจจุบันแบบเรียลไทม์อัปเดตทุกวินาทีเพื่อให้คุณสามารถจับช่วงเวลาที่แม่นยำด้วยการคลิกเดียว Date.now() ของ JavaScript และ API สมัยใหม่ส่วนใหญ่จะส่งคืน timestamp ในหน่วยมิลลิวินาที (13 หลัก) ในขณะที่ฐานข้อมูลและระบบเก่ามักใช้วินาที (10 หลัก) — การสับสนระหว่างสองสิ่งนี้เป็นหนึ่งในข้อผิดพลาดที่พบบ่อยที่สุดในการพัฒนาเว็บ ตัวแปลงยังจัดการ timestamp ลบที่แสดงวันที่ก่อน epoch (31 ธันวาคม 1969 และก่อนหน้า) สลับระหว่าง UTC และเวลาท้องถิ่นเพื่อตรวจสอบค่าที่อ่อนไหวต่อเขตเวลา
เมื่อไหร่ควรใช้เครื่องคำนวณนี้
- คุณกำลังดีบัก API ที่ส่งกลับ Unix timestamp และต้องอ่านเป็นวันที่มนุษย์
- คุณกำลังเขียนโค้ดที่จัดเก็บหรือเปรียบเทียบวันที่และต้องแปลงระหว่าง timestamp และรูปแบบวันที่
- คุณต้องการ Unix timestamp ปัจจุบันสำหรับรายการบันทึก การเรียก API หรือเรคคอร์ดฐานข้อมูล
- คุณกำลังวิเคราะห์บันทึกเซิร์ฟเวอร์ที่ timestamp อยู่ในรูปแบบ epoch
- คุณต้องการตรวจสอบว่า timestamp ในโค้ดของคุณตรงกับวันที่และเวลาที่ถูกต้อง
- คุณกำลังทำงานกับฐานข้อมูลหรือระบบไฟล์ที่ใช้ Unix timestamp สำหรับ metadata ไฟล์
ขั้นตอน:
- ป้อน Unix timestamp เพื่อแปลงเป็นวันที่ที่อ่านได้
- หรือป้อนวันที่/เวลาเพื่อแปลงเป็น Unix timestamp
- คลิกปุ่มเวลาปัจจุบันเพื่อรับ Unix timestamp ปัจจุบัน
- คัดลอกผลลัพธ์ด้วยปุ่มคัดลอก
สูตร
Timestamp → วันที่: new Date(timestamp × 1000)
วันที่ → Timestamp: Math.floor(date.getTime() / 1000)
ยุค Unix: 1 มกราคม 1970 00:00:00 UTC
Timestamp 32-bit สูงสุด: 19 มกราคม 2038 (03:14:07 UTC)
กรณีใช้งาน
- ดีบักการตอบกลับ API ที่มี timestamp
- แปลงค่า timestamp ของฐานข้อมูล
- ตั้งค่าวันหมดอายุในโค้ด
- การวิเคราะห์บันทึกและการตีความข้อมูลอนุกรมเวลา
ประโยชน์หลัก
- แปลงระหว่าง Unix timestamp และวันที่ที่อ่านได้ทันทีในทั้งสองทิศทาง
- Unix timestamp ปัจจุบันแบบเรียลไทม์อัปเดตทุกวินาทีพร้อมปุ่มคัดลอกด้วยการคลิกเดียว
- สลับระหว่าง UTC และเวลาท้องถิ่นเพื่อตรวจสอบค่าที่อ่อนไหวต่อเขตเวลา
- จัดการทั้งรูปแบบ 10 หลัก (วินาที) และ 13 หลัก (มิลลิวินาที)
- ประมวลผล timestamp ลบสำหรับวันที่ก่อน Unix Epoch (ก่อน 1970)
- ฟรี ทันที และทำงานในเบราว์เซอร์ของคุณโดยไม่ต้องลงทะเบียนหรือเก็บข้อมูล
เคล็ดลับ
- เก็บ timestamp ใน UTC ในฐานข้อมูลเสมอ — แปลงเป็นเวลาท้องถิ่นเฉพาะเมื่อแสดงผลเท่านั้น
- จำไว้ว่า Date.now() ของ JavaScript จะส่งคืนมิลลิวินาที สำหรับวินาที: Math.floor(Date.now() / 1000)
- ใช้จำนวนเต็ม 64 บิตสำหรับการจัดเก็บ timestamp ในระบบใหม่เพื่อหลีกเลี่ยงปัญหา overflow ในปี 2038
- เมื่อดีบักวันที่ที่ไม่คาดคิด ให้ตรวจสอบก่อนว่า timestamp อยู่ในหน่วยวินาทีหรือมิลลิวินาที — ความแตกต่างคือ 1000 เท่า
- สำหรับ token ยืนยันตัวตน API หรือ URL ที่ลงนาม ให้คำนวณ timestamp หมดอายุฝั่งเซิร์ฟเวอร์และเปรียบเทียบกับเวลา Unix ปัจจุบันเพื่อตรวจสอบความถูกต้อง
ข้อผิดพลาดที่พบบ่อย
- ลืมว่า Date.now() ของ JavaScript จะส่งคืนมิลลิวินาที — หารด้วย 1000 เสมอเมื่อเปรียบเทียบกับ timestamp ที่ใช้วินาที
- สันนิษฐานว่า API ทั้งหมดใช้รูปแบบเดียวกัน — บางตัวส่งคืนวินาที บางตัวส่งคืนมิลลิวินาที ตรวจสอบเอกสาร API เสมอ
- ไม่คำนึงถึงความแตกต่างของเขตเวลาระหว่างที่สร้าง timestamp และที่กำลังดู ทำให้วันที่ดูเหมือนต่างกันหลายชั่วโมง
- ใช้จำนวนเต็ม 32 บิตสำหรับการจัดเก็บ timestamp ในระบบใหม่แทน 64 บิต ซึ่งจะล้นในปี 2038 และทำลายแอปพลิเคชัน
คำศัพท์สำคัญ
- Unix timestamp: จำนวนวินาทีที่ผ่านไปตั้งแต่วันที่ 1 มกราคม 1970 00:00:00 UTC (Unix Epoch)
- Epoch: จุดอ้างอิงสำหรับการวัดเวลาในการคำนวณ สำหรับ Unix คือวันที่ 1 มกราคม 1970 00:00:00 UTC
- UTC (เวลาสากลที่ประสานงาน): มาตรฐานเวลาหลักที่ใช้ทั่วโลก เป็นอิสระจากเขตเวลาใดก็ตาม
- ปัญหาปี 2038: วันที่ Unix timestamp 32 บิตจะล้น ทำให้ระบบต้องสลับไปยังค่าลบและแสดงวันที่ประมาณปี 1901
- Timestamp มิลลิวินาที: Unix timestamp 13 หลักที่วัดเวลาเป็นมิลลิวินาทีแทนวินาที ใช้โดย JavaScript Date.now() และ API สมัยใหม่ส่วนใหญ่
แนวคิดที่เกี่ยวข้อง
- ยุค Unix: 1 มกราคม 1970 00:00:00 UTC จุดอ้างอิงที่ Unix timestamp ทั้งหมดวัดจาก
- เวลา Epoch: ระบบแสดงเวลาเป็นจำนวนวินาทีที่ผ่านไปตั้งแต่ยุค Unix
- UTC (เวลาสากลเชิงพิกัด): มาตรฐานเวลาหลักที่โลกใช้ควบคุมนาฬิกาและเวลา ไม่ขึ้นกับเขตเวลา
- ปัญหาปี 2038: วันที่ Unix timestamp 32-bit จะล้น อาจทำให้ระบบตีความวันที่เป็น 1901
- ISO 8601: มาตรฐานสากลสำหรับการแสดงวันที่และเวลา (เช่น 2024-06-29T12:00:00Z) เป็นทางเลือกแทน Unix timestamp
ตัวอย่าง
Timestamp ปัจจุบัน: 1719676800 → วันที่: 29 มิถุนายน 2024 12:00:00 PM UTC แปลงวันที่: "1 มกราคม 2025 00:00:00 UTC" → Timestamp: 1735689600
การตีความผลลัพธ์
ตัวแปลงทำงานสองทิศทาง: การป้อน Unix timestamp ให้วันที่ที่มนุษย์อ่านได้ และการป้อนวันที่ให้ Unix timestamp เวลา Unix ปัจจุบันแสดงด้านบนพร้อมปุ่มรีเฟรช เพื่อให้คุณเห็น timestamp สดได้เสมอโดยไม่ต้องพิมพ์อะไร
Unix timestamp นับวินาทีตั้งแต่ 1 มกราคม 1970 UTC (ยุค Unix) ไม่ขึ้นกับเขตเวลา — timestamp เดียวกันแสดงช่วงเวลาเดียวกันทุกที่บนโลก เมื่อคุณป้อนวันที่ ตัวแปลงใช้ offset เขตเวลาท้องถิ่นของคุณเพื่อคำนวณ timestamp แต่คุณสามารถสลับเป็น UTC หากต้องการผลลัพธ์ที่เป็นกลางต่อเขตเวลา
ปัญหาปี 2038 น่าเข้าใจ: จำนวนเต็มแบบมีเครื่องหมาย 32-bit ล้นในวันที่ 19 มกราคม 2038 หมายความว่าระบบเก่าที่ใช้ timestamp 32-bit จะวนกลับเป็นค่าลบ ระบบสมัยใหม่ใช้ timestamp 64-bit ที่จะไม่ล้นเป็นเวลาหลายพันล้านปี หากคุณพบวันที่ไม่คาดคิดรอบปี 1901 หรือ 2038 การล้น 32-bit เป็นสาเหตุที่น่าจะเป็น

