วันที่เป็น Unix Timestamp

5 จาก 3 การให้คะแนน

วันที่เป็น Unix Timestamp เป็นเครื่องมือฟรีสำหรับแปลงวันที่และเขตเวลาที่กำหนดให้เป็น Unix timestamp เพื่อนำไปใช้ในโค้ด API ฐานข้อมูล และบันทึกเหตุการณ์

Unix timestamp คืออะไร?

Unix timestamp คือจำนวนเต็มที่แสดงจำนวนวินาทีซึ่งผ่านไปนับจากเวลา 00:00:00 UTC ของวันที่ 1 มกราคม 1970 จุดเริ่มต้นนี้เรียกว่า Unix epoch ตัวอย่างเช่น เวลา epoch มี timestamp เท่ากับ 0 ส่วนวันที่หลังจากนั้นจะมีค่าเป็นบวก

Unix timestamp ช่วยให้ระบบต่าง ๆ แลกเปลี่ยนจุดเวลาได้ในรูปแบบกะทัดรัดและไม่ขึ้นกับภาษา ทั้งยังหลีกเลี่ยงความกำกวมของรูปแบบวันที่ในแต่ละพื้นที่ เช่น 10/09/2026 ซึ่งผู้อ่านชาวไทยเข้าใจว่าเป็นวันที่ 10 กันยายน แต่บางระบบอาจตีความว่าเป็นวันที่ 9 ตุลาคม

Timestamp ระบุจุดเวลาหนึ่ง ไม่ใช่วันที่ในปฏิทินที่จัดรูปแบบไว้แล้ว ตัวเลขนี้ไม่มีป้ายกำกับ Europe/London, UTC หรือเขตเวลาอื่นติดมาด้วย เขตเวลาจึงสำคัญในขั้นตอนการแปลง เพราะเป็นตัวกำหนดว่าวันที่และเวลาท้องถิ่นเดิมหมายถึงจุดเวลาใด

แปลงวันที่เป็น Unix timestamp อย่างไร?

ตั้งค่าช่อง เขตเวลา จากนั้นนำค่า การประทับเวลา Unix ที่ได้ไปใช้ในระบบปลายทาง

  1. เลือกเขตเวลาที่ต้องการ
  2. สั่งแปลง แล้วคัดลอกจำนวนเต็มจากช่อง การประทับเวลา Unix
  3. ก่อนใส่ค่า ให้ตรวจสอบว่าระบบปลายทางต้องการหน่วยวินาทีหรือมิลลิวินาที

การเลือกเขตเวลาสามารถทำให้ผลลัพธ์ต่างกันหลายชั่วโมง และส่วนต่างอาจเปลี่ยนไปตามวันที่ เนื่องจากบางพื้นที่ เช่น สหราชอาณาจักร ใช้กฎเวลาออมแสง Europe/London จะตรงกับ UTC ในฤดูหนาว และโดยทั่วไปเป็น UTC+1 ในช่วง British Summer Time

การแปลงด้วยวันที่เป็น Unix Timestamp ทำงานบนเซิร์ฟเวอร์ ข้อมูลในช่อง เขตเวลา จะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และไม่มีการจัดเก็บไว้

อ่านค่า timestamp ที่ได้อย่างไร?

ให้อ่านผลลัพธ์เป็นจำนวนวินาทีที่นับจาก Unix epoch โดยไม่มีเครื่องหมายวรรคตอน ส่วนต่อท้ายที่ระบุเขตเวลา หรือข้อมูลวันที่ที่มนุษย์อ่านได้ ค่าของวันที่ในปัจจุบันมักมี 10 หลัก แต่จำนวนหลักเพียงอย่างเดียวไม่สามารถยืนยันได้ว่า timestamp นั้นถูกต้อง

ปัญหาที่พบบ่อยที่สุดเมื่อนำค่าไปเชื่อมต่อกับระบบอื่นคือการสับสนระหว่างวินาทีกับมิลลิวินาที เครื่องมือที่ทำงานกับ Unix และระบบฝั่งเซิร์ฟเวอร์จำนวนมากใช้วินาที ส่วน API วันที่ของ JavaScript มักใช้มิลลิวินาที ดังนั้นในกรณีนี้อาจต้องนำค่าแบบวินาทีไปคูณด้วย 1,000

  • 0 หมายถึงวันที่ 1 มกราคม 1970 เวลา 00:00:00 UTC
  • จำนวนเต็มบวกที่มากขึ้นหมายถึงจุดเวลาที่อยู่ภายหลัง
  • Timestamp ติดลบใช้แทนวันที่ก่อน epoch ได้ แต่การรองรับจะแตกต่างกันไปตามแอปพลิเคชันและแพลตฟอร์ม
  • ตัวเลขนี้จะไม่เก็บเขตเวลาที่ใช้คำนวณไว้ตั้งแต่แรก

การได้ผลลัพธ์เป็นตัวเลขไม่ได้ยืนยันว่าคุณเลือกเขตเวลาตามที่ตั้งใจไว้ หากเวลาหลังการแปลงดูไม่ถูกต้อง ให้ตรวจสอบเขตเวลาที่เลือกก่อน แล้วจึงตรวจสอบกฎเวลาออมแสงหากมีผลบังคับใช้ ถ้าค่าคลาดเคลื่อนเป็น 1,000 เท่า ให้ตรวจสอบหน่วยที่ระบบต้องการ

ตัวอย่างการแปลงวันที่

ตัวอย่างสั้น ๆ ต่อไปนี้แสดงให้เห็นว่าเขตเวลาส่งผลต่อจุดเวลาที่ระบุอย่างไร

1 มกราคม 1970 เวลา 00:00:00 UTC ตรงกับ 0

1 มกราคม 2024 เวลา 00:00:00 UTC ตรงกับ 1704067200

1 กรกฎาคม 2024 เวลา 12:00:00 Europe/London ตรงกับ 1719831600

ในตัวอย่างสุดท้าย ลอนดอนอยู่ในช่วง British Summer Time ดังนั้นเวลาเที่ยงวันตามเวลาท้องถิ่นจึงตรงกับ 11:00 UTC หากกำหนดเขตเวลาเป็น UTC ให้กับเวลาบนนาฬิกาที่เขียนเหมือนกัน จะได้ timestamp คนละค่า

สำหรับข้อมูลจากบุคคลที่สาม ควรใช้วันที่ที่ไม่กำกวม เช่น 1 กรกฎาคม 2024 หรือรูปแบบตามแนวทาง ISO อย่าง 2024-07-01 แทน 01/07/2024 ตัวอักษรที่มีเครื่องหมายกำกับเสียงหรืออักขระที่ไม่ใช่ละตินไม่ได้เป็นส่วนหนึ่งของ timestamp เพราะผลลัพธ์มีเฉพาะตัวเลข และอาจมีเครื่องหมายลบนำหน้า

การแปลงวันที่เป็น Unix time มีประโยชน์เมื่อใด?

การแปลงมีประโยชน์เมื่อต้องนำวันที่ที่มนุษย์อ่านได้ไปเปรียบเทียบ เรียงลำดับ หรือส่งต่อในรูปแบบจุดเวลาที่แม่นยำและเครื่องอ่านได้ ตัวอย่างการใช้งานทั่วไป ได้แก่ การดีบักการตอบกลับจาก API การเตรียมงานตามกำหนดเวลาก่อนนำระบบขึ้นใช้งาน การตรวจสอบระเบียนในฐานข้อมูล และการตีความวันที่จากบริการอื่น

  • แปลงกำหนดเวลาเผยแพร่ก่อนใส่ลงในการกำหนดค่าการนำระบบขึ้นใช้งาน
  • เปรียบเทียบเหตุการณ์ในแอปพลิเคชันกับ timestamp ในบันทึกของเซิร์ฟเวอร์
  • เตรียมพารามิเตอร์คำขอสำหรับ API ที่รับเวลาเริ่มต้นและสิ้นสุดเป็นจำนวนวินาทีจาก epoch
  • ปรับวันที่ที่นำเข้าจากไฟล์ CSV ให้เป็นรูปแบบเดียวกันก่อนบันทึกลงฐานข้อมูล
  • ตรวจสอบว่า webhook จากบุคคลที่สามส่งค่าเป็นวินาที ไม่ใช่มิลลิวินาที

ไม่จำเป็นต้องแปลงหากวันที่มีไว้ให้คนอ่านเท่านั้น และระบบปลายทางรองรับค่า ISO 8601 ที่ชัดเจน วันที่อย่าง 2026-09-10T14:30:00+01:00 จะเก็บส่วนต่างจาก UTC ไว้ และมักตรวจสอบได้ง่ายกว่าในระหว่างการดีบัก เช่นเดียวกัน การแปลงค่าที่เป็น Unix timestamp อยู่แล้วซ้ำ ๆ ไม่ได้เพิ่มข้อมูลใด

เครื่องมือนี้ไม่ตรวจสอบความถูกต้องของสคีมา API ไม่ยืนยันว่างานตามกำหนดเวลาจะทำงาน และไม่เก็บเขตเวลาเดิมไว้ในผลลัพธ์ หากต้องการดู timestamp ในรูปแบบวันที่ตามปฏิทิน ให้ใช้การประทับเวลา Unix เป็นวันที่

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

กรอกวันที่หรือเวลาโดยตรงได้ไหม?

ไม่ได้ ช่องเดียวที่ผู้ใช้กรอกได้ตามข้อมูลของเครื่องมือนี้คือ เขตเวลา

เครื่องมือนี้เรียกใช้ฟังก์ชัน PHP อะไร?

ระบบฝั่งเซิร์ฟเวอร์เรียกใช้ฟังก์ชัน date ของ PHP

ปัญหา Year 2038 คืออะไร?

ค่าสูงสุดของ Unix timestamp แบบ signed 32-bit คือ 2,147,483,647 ซึ่งตรงกับวันที่ 19 มกราคม 2038 เวลา 03:14:07 UTC ระบบสมัยใหม่มักใช้ค่าแบบ 64-bit แต่ซอฟต์แวร์รุ่นเก่า รูปแบบไฟล์บางชนิด และอุปกรณ์ฝังตัวอาจยังมีข้อจำกัดนี้ เมื่อต้องเตรียมวันที่ในอนาคตที่ห่างไกล ให้ตรวจสอบชนิดข้อมูลที่ใช้จัดเก็บ

Unix timestamp นับ leap second ด้วยไหม?

ในโมเดล POSIX ทั่วไป Unix time ไม่ได้แสดง leap second เป็นวินาทีที่มีหมายเลขแยกต่างหาก วิธีนี้เพียงพอสำหรับการจัดตารางงานและการบันทึกเหตุการณ์ของแอปพลิเคชันส่วนใหญ่ แต่งานเฉพาะทางด้านดาราศาสตร์หรือการจับเวลาความแม่นยำสูงอาจต้องใช้มาตรฐานเวลาอื่น

ก่อนบันทึกผลลัพธ์ควรตรวจสอบอะไรบ้าง?

ตรวจสอบเขตเวลา สถานะเวลาออมแสง และหน่วยที่ระบบปลายทางต้องการ จากนั้นแปลง timestamp กลับเป็นวันที่ที่อ่านได้ภายในระบบนั้น แล้วเปรียบเทียบกับค่าเดิมก่อนนำระบบขึ้นใช้งานหรืออัปเดตข้อมูลที่จัดเก็บไว้

เครื่องมือที่คล้ายกัน

การประทับเวลา Unix เป็นวันที่

แปลงการประทับเวลาแบบยูนิกซ์เป็น UTC และวันที่ในท้องถิ่นของคุณ

4,635
0

เครื่องมือยอดนิยม