Unix Timestamp

แปลง Unix timestamp เป็นวันที่และเวลาที่อ่านได้ และแปลงกลับจากวันที่เป็น timestamp รองรับหน่วยวินาทีและมิลลิวินาที เหมาะกับงานเขียนโปรแกรม ฐานข้อมูล

Unix Timestamp ปัจจุบัน: ...
ทิศทางการแปลง

กรอก Unix Timestamp เป็นหน่วยวินาที

วิธีใช้งาน

  1. กรอกค่า

    กรอกข้อมูลในช่องที่จำเป็น

  2. กดคำนวณ

    กดปุ่มคำนวณเพื่อดูผลลัพธ์

  3. ดูผลลัพธ์

    ดูผลลัพธ์และแชร์ได้ตามต้องการ

Unix timestamp คืออะไร?

Unix timestamp (Unix time, POSIX time, Epoch time) คือค่าที่แสดงจำนวนวินาที (seconds) ที่ผ่านไปนับตั้งแต่ 1 มกราคม 1970 เวลา 00:00:00 UTC (Unix Epoch) จนถึงปัจจุบัน ในรูปของจำนวนเต็มเพียงตัวเดียว เนื่องจากมันชี้ไปยังช่วงเวลาเดียวกันได้ทุกที่ทั่วโลกโดยไม่ขึ้นกับเขตเวลา เวลาออมแสง หรือรูปแบบการเขียนปฏิทิน จึงถูกใช้เป็นมาตรฐานโดยพฤตินัยในการจัดเก็บฐานข้อมูล การบันทึก log การสื่อสารผ่าน API และการเปรียบเทียบเวลา

ทำไมจึงแทนเวลาด้วยตัวเลข?

  • เปรียบเทียบง่าย — การตัดสินว่าเวลาใดมาก่อนทำได้เพียงเปรียบเทียบขนาดของจำนวนเต็ม
  • คำนวณสะดวก — การบวกหรือลบจะได้เวลาที่ผ่านไป (วินาที) ทันที
  • ไม่กำกวม — เป็นเวลาสัมบูรณ์อิงตาม UTC จึงไม่เกิดความสับสนว่าเป็น KST หรือ UTC

รูปแบบ 10 หลัก (วินาที) และ 13 หลัก (มิลลิวินาที) ถูกใช้กันทั่วไป โดย JavaScript และ Java ใช้มิลลิวินาทีเป็นค่าเริ่มต้น ส่วน system call ของ Unix ใช้วินาที

สูตรการคำนวณ

timestamp และวันที่แปลงไป-กลับกันได้โดยใช้ 1000 (การแปลงเป็นมิลลิวินาที) เป็นตัวกลาง

  • timestamp → วันที่: date = new Date(timestamp x 1000)
  • วันที่ → timestamp: timestamp = floor(มิลลิวินาที UTC / 1000)

ตัวอย่าง: แปลง 1711324800 วินาทีจะได้ 1711324800 x 1000 = 1,711,324,800,000 มิลลิวินาที → 2024-03-25 00:00:00 UTC ในทางกลับกัน เมื่อแปลง 1970-01-01 01:00 เนื่องจาก 1 ชั่วโมง = 3600 วินาที timestamp จึงเท่ากับ 3600 ในที่นี้ timestamp คือวินาทีที่ผ่านไปนับจาก Epoch, x1000 คือสัมประสิทธิ์การแปลงเป็นมิลลิวินาที และ floor คือการตัดทศนิยมทิ้ง

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

Unix timestamp คืออะไร?
Unix timestamp (Unix time, POSIX time) คือจำนวนวินาที (seconds) ที่ผ่านไปนับตั้งแต่ 1 มกราคม 1970 เวลา 00:00:00 UTC เป็นวิธีพื้นฐานที่สุดที่ระบบคอมพิวเตอร์ใช้แทนวันที่และเวลา โดยแสดงช่วงเวลาเดียวกันด้วยตัวเลขเดียวไม่ว่าจะอยู่เขตเวลาใด เช่น timestamp 0 คือเที่ยงคืน (UTC) ของวันที่ 1 มกราคม 1970
Epoch คืออะไร?
Epoch คือจุดอ้างอิงสำหรับการวัดเวลา ในระบบ Unix/POSIX นั้น Epoch คือ 1 มกราคม 1970 เวลา 00:00:00 UTC และเรียกอีกชื่อว่า 'Unix Epoch' ทุก Unix timestamp นับวินาทีที่ผ่านไปจากจุดนี้ ส่วน timestamp ที่เป็นค่าลบจะแทนเวลาก่อนปี 1970
ปัญหา Y2K38 (ปี 2038) คืออะไร?
Y2K38 คือปัญหา overflow ที่เกิดขึ้นเมื่อจัดเก็บ timestamp ในจำนวนเต็มแบบมีเครื่องหมายขนาด 32 บิต ค่าสูงสุดของ 32 บิตคือ 2,147,483,647 ซึ่งตรงกับ 19 มกราคม 2038 เวลา 03:14:07 UTC หลังจากนั้นค่าจะพลิกเป็นลบและเวลาจะแสดงผิดเป็นปี 1901 ระบบสมัยใหม่ส่วนใหญ่แก้ปัญหานี้ด้วยการใช้จำนวนเต็ม 64 บิต
timestamp หน่วยวินาทีกับมิลลิวินาทีต่างกันอย่างไร?
หน่วยวินาทีมักมี 10 หลัก (เช่น 1711324800) ส่วนหน่วยมิลลิวินาทีมี 13 หลัก (เช่น 1711324800000) ความสัมพันธ์คือ 'มิลลิวินาที = วินาที x 1000' โดย Date.now() ของ JavaScript และ Java คืนค่าเป็นมิลลิวินาที ส่วนคำสั่ง date ของ Unix และ time() ของ PHP คืนค่าเป็นวินาที ตัวแปลงนี้แสดงผลทั้งหน่วยวินาทีและมิลลิวินาทีพร้อมกัน
ทำไมเวลา UTC กับเวลาท้องถิ่นจึงแสดงต่างกัน?
ตัว timestamp เองเป็นเวลาสัมบูรณ์ตาม UTC แต่คนเราอ่านเวลาท้องถิ่นของตนได้สะดวกกว่า จึงแสดง timestamp เดียวกันสองแบบ คือตาม UTC และตามเขตเวลาท้องถิ่นของเบราว์เซอร์ ตัวอย่างเช่น เกาหลี (KST) คือ UTC+9 ดังนั้นสำหรับ timestamp เดียวกัน เวลาท้องถิ่นจะแสดงเร็วกว่า UTC อยู่ 9 ชั่วโมง
จะดู Unix timestamp ปัจจุบันได้อย่างไร?
เมื่อเปิดหน้านี้ จะแสดง Unix timestamp ปัจจุบันแบบเรียลไทม์ และปุ่ม 'ใช้ timestamp ปัจจุบัน' จะกรอกค่าลงในช่องป้อนข้อมูลได้ทันที บนบรรทัดคำสั่งก็สามารถใช้ 'date +%s' (Unix/Mac) เพื่อรับ timestamp หน่วยวินาทีปัจจุบันได้เช่นกัน
รูปแบบ ISO 8601 คืออะไร และทำไมจึงแสดงควบคู่ไปด้วย?
ISO 8601 คือรูปแบบการเขียนวันที่และเวลาตามมาตรฐานสากล เช่น '2024-03-25T00:00:00.000Z' โดยตัว Z ท้ายสุดหมายถึง UTC timestamp นั้นมนุษย์อ่านยาก ส่วนสตริง UTC เข้ากันได้ดีระหว่างระบบ จึงมักใช้ร่วมกันในการแลกเปลี่ยนข้อมูลผ่าน API, log และ JSON เราจึงให้มาควบคู่กับผลการแปลง
timestamp เป็น 0 หรือเป็นค่าลบได้หรือไม่?
ได้ timestamp 0 คือจุดอ้างอิง Epoch ได้แก่ 1 มกราคม 1970 เวลา 00:00:00 UTC ส่วนเวลาก่อนหน้านั้น (เช่น ปี 1969) จะแสดงเป็นค่าลบ สำหรับอ้างอิง Y2K (2000-01-01) คือ 946684800 และขีดจำกัด Y2K38 คือ 2147483647 ดังนั้นช่วงเวลาเฉพาะจึงมีค่าจำนวนเต็มที่ตายตัว
ข้อมูลปฏิทิน 2026

เครื่องคิดเลขที่เกี่ยวข้อง