อ่าน claim exp / iat ของ JWT
JSON Web Token เก็บ iat (ออกเมื่อ) และ exp (หมดอายุเมื่อ) เป็น Unix วินาที วางตัวเลขเข้ามาเพื่อดูทันทีว่า token ยังใช้ได้หรือไม่ ออกเมื่อใด และเหลืออีกนานแค่ไหนก่อนหมดอายุ
แปลง Unix timestamp (วินาทีหรือมิลลิวินาที) เป็นวันที่ที่อ่านง่าย หรือแปลงวันที่กลับเป็น epoch ได้ทันที พร้อมแสดง ISO 8601, RFC 2822, UTC, เวลาท้องถิ่น และอีก 10+ โซนเวลาในหน้าเดียว
Unix timestamp (หรือที่เรียกว่า "Unix time" หรือ "epoch time") คือจำนวนวินาทีที่ผ่านไปนับตั้งแต่ 00:00:00 UTC ของวันพฤหัสบดีที่ 1 มกราคม 1970 โดยไม่นับ leap seconds เป็นรูปแบบเวลามาตรฐานที่ใช้ในฐานข้อมูล, log, API และ cookie ตัวเลข 10 หลักคือวินาที (จะกลายเป็น 11 หลักในปี 2286) ตัวเลข 13 หลักคือมิลลิวินาที
เครื่องมือ Unix ส่วนใหญ่ (curl, date, syslog, JWT exp/iat) ใช้วินาที ส่วน Date.now ของ JavaScript คืนค่าเป็นมิลลิวินาที Java, Kotlin และ Web API หลายตัวก็ใช้มิลลิวินาทีเช่นกัน หากตัวเลขมีความยาวประมาณ 10 หลักในปัจจุบัน นั่นคือวินาที หากเป็น 13 หลักคือมิลลิวินาที iKit ตรวจจับอัตโนมัติจากจำนวนหลัก แต่คุณสามารถบังคับเลือกหน่วยได้ด้วยปุ่มตัวเลือก
—
วินาที
—
มิลลิวินาที
เบราว์เซอร์จะตีความค่าจากตัวเลือกเป็นโซนเวลาท้องถิ่น — เปลี่ยนโซนเวลาของระบบหากต้องการแปลงจากโซนอื่น
รองรับทุกอย่างที่ Date.parse เข้าใจ: "2024-01-15 10:30 UTC", "Jan 15, 2024", "2024-01-15T10:30:00+09:00"
ออกแบบมาเพื่อนักพัฒนาที่ต้องดีบัก log, API และ timestamp ในฐานข้อมูล — ไม่ต้องสมัคร ไม่ต้องอัปโหลด ไม่มีบุคคลที่สามคั่นกลางระหว่างคุณกับข้อมูล
เวลา Unix ปัจจุบันอัปเดตทุกวินาทีที่ด้านบนของหน้า ทั้งในหน่วยวินาทีและมิลลิวินาที คัดลอกได้ในคลิกเดียว
วางตัวเลขใดก็ได้ — 10 หลักถือเป็นวินาที, 13 หลักเป็นมิลลิวินาที, 16 หลักเป็นไมโครวินาที สามารถสลับหน่วยเองได้เมื่อจำเป็น
ISO 8601, RFC 2822, นาฬิกา UTC, เวลาท้องถิ่น และ Y-M-D H:M:S ในหน้าเดียว พร้อมวันในสัปดาห์และระยะเวลาเทียบเชิงสัมพัทธ์ที่อ่านง่าย ("2 ชั่วโมงที่แล้ว")
ดูเวลาเดียวกันใน UTC, นิวยอร์ก, แอลเอ, ลอนดอน, ปารีส, โตเกียว, เซี่ยงไฮ้, ไทเป, โกลกาตา และซิดนีย์ — เหมาะกับการจัดการเหตุการณ์ข้ามทีมและ API ระดับโลก
สลับไปยังโหมด วันที่ → Timestamp เพื่อพิมพ์ "Jan 15 2024 10:30 UTC" หรือเลือกจากตัวเลือกวันที่-เวลา รับค่า Unix timestamp ทั้งในหน่วยวินาทีและมิลลิวินาที
ทุกอย่างทำงานเป็น JavaScript ที่โหลดในแท็บเบราว์เซอร์ของคุณอยู่แล้ว ตรวจสอบได้ใน DevTools → Network: ไม่มี fetch, ไม่มี XHR, ไม่มีการเก็บ log ปลอดภัยกับ timestamp จากระบบ production
Unix timestamp เป็นเพียงเลขจำนวนเต็ม — แต่การเปลี่ยนเป็นวันที่มีรายละเอียดมากกว่าที่คิด
Unix timestamp อาจเป็นวินาที, มิลลิวินาที, ไมโครวินาที หรือนาโนวินาที ขึ้นอยู่กับแหล่งที่มา ขั้นแรกคือต้องรู้ว่าเป็นหน่วยใด iKit ใช้จำนวนหลักในการตรวจ: ~10 หลัก = วินาที, ~13 = ms, ~16 = µs และคุณสามารถเปลี่ยนเองได้ด้วยปุ่มตัวเลือกหน่วย
Constructor ของ Date ใน JavaScript รับค่าเป็นมิลลิวินาที เราจึงคูณวินาที × 1000 (หรือหารไมโครวินาที / 1000) เพื่อให้เป็นหน่วยมาตรฐาน ภายใน Date จะเก็บมิลลิวินาทีนับจาก epoch ในรูป float 64-bit ซึ่งครอบคลุม timestamp ทุกค่าที่ใช้งานจริงได้สบาย
เมื่อมีอ็อบเจกต์ Date แล้ว เราสั่งให้จัดรูปแบบในหลายวิธี: toISOString สำหรับ ISO 8601 / UTC, toUTCString สำหรับ RFC 2822, toString สำหรับโซนเวลาท้องถิ่นของผู้ใช้ และ Intl.DateTimeFormat สำหรับโซนเวลาอื่น ๆ ที่ต้องการแสดง
ทิศทางตรงกันข้าม Date.parse ของเบราว์เซอร์รองรับ ISO 8601 และรูปแบบเป็นธรรมชาติอีกหลายแบบ Input datetime-local จะตีความตามโซนเวลาท้องถิ่นของผู้ใช้ getTime คืนค่ามิลลิวินาทีนับจาก epoch หารด้วย 1000 จะได้วินาที
สถานการณ์จริงที่คุณจะต้องใช้เครื่องมือแปลง epoch
JSON Web Token เก็บ iat (ออกเมื่อ) และ exp (หมดอายุเมื่อ) เป็น Unix วินาที วางตัวเลขเข้ามาเพื่อดูทันทีว่า token ยังใช้ได้หรือไม่ ออกเมื่อใด และเหลืออีกนานแค่ไหนก่อนหมดอายุ
Postgres extract(epoch from now), MySQL UNIX_TIMESTAMP, MongoDB $toDate — ทั้งหมดคืนค่า Unix epoch วางค่า timestamp จาก row เพื่อดูเวลานาฬิกาจริงในแต่ละโซนเวลา
Log แอปพลิเคชันใน UTC, syslog ในเวลาท้องถิ่น, log จากผู้ให้บริการต้นทางใน PST แปลงแต่ละ timestamp เป็น ISO 8601 ที่นี่ แล้วคุณจะเรียงลำดับเหตุการณ์ทีละวินาทีเพื่อสืบสวนเหตุการณ์ได้
เลือกวันที่ในอนาคตจากตัวเลือก คัดลอก Unix timestamp แล้ววางลงใน header Set-Cookie, ฟิลด์ HTTP Expires หรือไฟล์ตั้งค่า TTL ของแคช ไม่ต้องคำนวณในหัว ไม่มีพลาดโซนเวลาคลาดเคลื่อน
Timestamp จาก log ของ production, ticket ซัพพอร์ตลูกค้า, audit trail หรือชุดข้อมูลทดสอบ ดูเผิน ๆ อาจไม่มีพิษภัย แต่จริง ๆ แล้วเชื่อมโยงกับการกระทำของผู้ใช้และเหตุการณ์ในระบบ การวางลงในเซิร์ฟเวอร์ของคนอื่นจะสร้างร่องรอยที่คุณควบคุมไม่ได้ ตัวแปลงของ iKit ทำงานเป็น JavaScript ที่โหลดในแท็บเบราว์เซอร์ของคุณอยู่แล้ว
บทความเชิงลึกและการเปรียบเทียบเครื่องมือจากบล็อก iKit
Unix timestamp (หรือที่เรียกว่า "Unix time" หรือ "epoch time") คือจำนวนวินาทีที่ผ่านไปนับตั้งแต่ 00:00:00 UTC ของวันพฤหัสบดีที่ 1 มกราคม 1970 โดยไม่นับ leap seconds เป็นรูปแบบเวลามาตรฐานที่ใช้ในฐานข้อมูล, log, API และ cookie ตัวเลข 10 หลักคือวินาที (จะกลายเป็น 11 หลักในปี 2286) ตัวเลข 13 หลักคือมิลลิวินาที
เครื่องมือ Unix ส่วนใหญ่ (curl, date, syslog, JWT exp/iat) ใช้วินาที ส่วน Date.now ของ JavaScript คืนค่าเป็นมิลลิวินาที Java, Kotlin และ Web API หลายตัวก็ใช้มิลลิวินาทีเช่นกัน หากตัวเลขมีความยาวประมาณ 10 หลักในปัจจุบัน นั่นคือวินาที หากเป็น 13 หลักคือมิลลิวินาที iKit ตรวจจับอัตโนมัติจากจำนวนหลัก แต่คุณสามารถบังคับเลือกหน่วยได้ด้วยปุ่มตัวเลือก
ไม่เลย เครื่องมือทั้งหมดเป็น JavaScript ที่ทำงานในแท็บเบราว์เซอร์ของคุณ การแปลงเป็นการคำนวณ Date ธรรมดา — ไม่มี fetch, ไม่มี XHR, ไม่มี beacon เปิด DevTools → Network แล้วดูได้: ไม่มี request ใดถูกส่งเมื่อคุณพิมพ์ ปลอดภัยที่จะวาง timestamp จาก log ของ production, ฐานข้อมูล staging หรือ ticket ของฝ่ายซัพพอร์ต
Unix timestamp ไม่มีโซนเวลาตามนิยาม — เป็นจำนวนวินาทีนับจาก epoch ใน UTC ความต่างจะปรากฏตอนที่นำมาแสดงผลเท่านั้น ตัวเลือกในฝั่ง วันที่ → Timestamp จะใช้โซนเวลาท้องถิ่นของเบราว์เซอร์ หากต้องการป้อนวันที่ในโซนอื่น ให้พิมพ์แบบอิสระพร้อม offset ชัดเจน เช่น "2024-01-15 10:30:00 +09:00" หรือ "2024-01-15 10:30 UTC"
Unix timestamp แบบ 32-bit signed จะ overflow ในวันที่ 19 มกราคม 2038 iKit ใช้ชนิด Number ของ JavaScript (ช่วง safe-integer 53 บิต) จึงรองรับวันที่เกินปี 275000 AD ได้สบาย ปัญหา Y2038 จะกระทบระบบที่ใช้ time_t แบบ 32-bit — เคอร์เนล, ฐานข้อมูล และภาษาส่วนใหญ่ในปัจจุบันย้ายไปใช้เวลาแบบ 64-bit แล้ว แต่เฟิร์มแวร์ embedded รุ่นเก่ายังคงเสี่ยงอยู่