Unix Timestamp: คู่มือฉบับสมบูรณ์
Unix timestamp เป็นวิธีมาตรฐานในการแสดงวันที่และเวลาในการเขียนโปรแกรม ถูกใช้ในฐานข้อมูล API และระบบทั่วโลก การเข้าใจวิธีทำงานกับ timestamp เป็นทักษะที่จำเป็นสำหรับนักพัฒนา คู่มือนี้อธิบายว่า Unix timestamp คืออะไร วิธีแปลงพวกมัน และวิธีจัดการเวลาอย่างถูกต้องในโค้ดของคุณ
Unix Timestamp คืออะไร?
Unix timestamp (หรือที่เรียกว่า Epoch time หรือ POSIX time) เป็นจำนวนวินาทีตั้งแต่ Unix Epoch: 00:00:00 UTC เมื่อวันพฤหัสบดีที่ 1 มกราคม 1970 ไม่รวมวินาทีอธิกสุรทิน ตัวอย่าง: timestamp 0 = 1 มกราคม 1970 00:00:00 UTC, timestamp 1234567890 = 13 กุมภาพันธ์ 2009 23:31:30 UTC, timestamp 1700000000 = 14 พฤศจิกายน 2023 22:13:20 UTC ทำไมต้องใช้ Unix Timestamp? ง่าย: ตัวเลขเดียวแทนวันที่และเวลาทั้งหมด เป็นสากล: เหมือนกันในทุกโซนเวลา คำนวณได้ง่าย: ง่ายต่อการเพิ่ม ลบ และเปรียบเทียบ เรียงลำดับได้: เรียงลำดับตามธรรมชาติตามลำดับเวลา กะทัดรัด: จำนวนเต็ม 32 หรือ 64 บิต Timestamp ในหน่วยมิลลิวินาที: JavaScript และภาษาบางภาษาใช้ timestamp ในมิลลิวินาที (1/1000 ของวินาที) timestamp วินาที: 1234567890 timestamp มิลลิวินาที: 1234567890000 ตรวจสอบเสมอว่าคุณกำลังทำงานกับหน่วยใด!
การแปลง Timestamp
จาก Timestamp ไปยังวันที่: JavaScript: let date = new Date(timestamp * 1000); // คูณด้วย 1000 ถ้าเป็นวินาที Python: from datetime import datetime; date = datetime.fromtimestamp(timestamp) PHP: $date = date('Y-m-d H:i:s', $timestamp); MySQL: FROM_UNIXTIME(timestamp) จากวันที่ไปยัง Timestamp: JavaScript: let timestamp = Math.floor(Date.now() / 1000); // วินาที, let timestamp = Date.now(); // มิลลิวินาที Python: import time; timestamp = int(time.time()) PHP: $timestamp = time(); MySQL: UNIX_TIMESTAMP(NOW()) การพิจารณาโซนเวลา: Timestamp เป็น UTC เสมอ—พวกมันแสดงถึงช่วงเวลาในเวลาสากล เมื่อแสดง timestamp แปลงไปยังโซนเวลาท้องถิ่นของผู้ใช้ เมื่อจัดเก็บ timestamp เก็บเป็น UTC เสมอ เวลาท้องถิ่นควรใช้สำหรับการแสดงผลเท่านั้น ไม่ใช่การจัดเก็บ
ปัญหา Y2K38
ปัญหา Year 2038 (Y2K38): timestamp 32 บิตที่มีเครื่องหมายล้นในวันที่ 19 มกราคม 2038 03:14:07 UTC ค่าสูงสุด: 2,147,483,647 (2^31 - 1) วินาที หลังจากนี้ จะหมุนกลับเป็นปี 1901 โซลูชัน: ใช้ timestamp 64 บิต—เพียงพอจนถึงปี 292 ถ้าพันล้าน ภาษาสมัยใหม่ส่วนใหญ่ใช้ 64 บิตตอนนี้ ตรวจสอบระบบเก่า: ระบบ 32 บิต C, ระบบฝังตัวเก่า บางภาษาสคริปต์บนแพลตฟอร์ม 32 บิต การตรวจสอบและย้ายข้อมูล: ตรวจสอบว่าฐานข้อมูลของคุณใช้จำนวนเต็ม 32 หรือ 64 บิต ย้ายไปยัง 64 บิต (BIGINT ใน SQL) ถ้ายังเป็น 32 บิต ทดสอบด้วยวันที่หลังจากปี 2038 อัปเดตระบบเก่าก่อนที่จะสายเกินไป
ลองใช้เครื่องมือ
แปลง Timestamp
เรียนรู้เพิ่มเติม
คำถามที่พบบ่อย
แปลง Timestamp
คำถามที่พบบ่อย →