เครื่องมือแปลงยูนิกซ์ไทม์สแตมป์
เครื่องมือแปลงยูนิกซ์ไทม์สแตมป์ระดับมืออาชีพ รองรับการแปลงสองทางระหว่างไทม์สแตมป์กับวันที่และเวลา โดยจะจดจำชนิดของไทม์สแตมป์อัตโนมัติตามจำนวนหลัก ได้แก่ วินาที (9-10 หลัก) มิลลิวินาที (13 หลัก) ไมโครวินาที (16 หลัก) และนาโนวินาที (19 หลัก) มีมุมมอง 3 แบบ ได้แก่ เวลาท้องถิ่น เวลา UTC และเวลาเขตเวลาที่เลือก รองรับการ์ดแปลงหลายรายการเพื่อเปรียบเทียบเป็นชุด และมีช่วงเวลาล่าสุดและช่วงเวลาทั่วไปในตัว สำหรับการดีบักในการพัฒนาและการแปลงประจำวัน อินเทอร์เฟซรองรับการตอบสนองทุกขนาดหน้าจอ การแปลงทันทีเมื่อป้อนข้อมูล และการรีเฟรชผลลัพธ์อัตโนมัติเมื่อสลับเขตเวลา การทำงานทั้งหมดจะดำเนินการในเบราว์เซอร์ของคุณเท่านั้น จึงมั่นใจในความเป็นส่วนตัวและความปลอดภัย
เวลาปัจจุบัน
ไทม์สแตมป์เป็นวันที่
รองรับไทม์สแตมป์แบบวินาที มิลลิวินาที ไมโครวินาที และนาโนวินาที โดยจะจดจำอัตโนมัติจากจำนวนหลัก (วินาที: 9-10 หลัก, มิลลิวินาที: 13 หลัก, ไมโครวินาที: 16 หลัก, นาโนวินาที: 19 หลัก)
ผลลัพธ์การแปลง(อัตโนมัติ)
วันที่เป็นไทม์สแตมป์
ผลลัพธ์การแปลง(อัตโนมัติ)
เครื่องมือแปลงวันที่เวลาสำหรับไทม์สแตมป์หลายรายการ
เครื่องมือแปลงวันที่เวลาสำหรับไทม์สแตมป์หลายรายการ
เครื่องมือแปลงไทม์สแตมป์สำหรับวันที่หลายรายการ
เครื่องมือแปลงไทม์สแตมป์สำหรับวันที่หลายรายการ
คำแนะนำการใช้งาน
เครื่องมือนี้ใช้สำหรับการแปลงทิศทางสองทางระหว่าง Unix timestamp กับวันที่เวลาในสถานการณ์ต่างๆ ได้อย่างรวดเร็ว รองรับความแม่นยำทั้งแบบวินาทีและมิลลิวินาที และช่วยให้คุณสามารถเลือกเขตเวลาเป้าหมายสำหรับการแสดงผลเปรียบเทียบ มีทั้งเครื่องมือแปลงแบบซิงเกิลการ์ดและมัลติคาร์ด การแปลงจะเกิดขึ้นทันทีเมื่อคุณป้อนข้อมูล และผลลัพธ์จะรีเฟรชอัตโนมัติเมื่อคุณสลับเขตเวลา นอกจากนี้ยังมีช่วงเวลาล่าสุดและช่วงเวลาทั่วไปในตัว เพื่อตอบสนองความต้องการในการดีบักการพัฒนาและการแปลงประจำวัน
คุณสมบัติของเครื่องมือ
- แปลงทันทีเมื่อป้อนข้อมูล พร้อมการจดจำอัตโนมัติของ timestamp แบบวินาที/มิลลิวินาที/ไมโครวินาที/นาโนวินาที
- รองรับการเลือกและแสดงผลเขตเวลาทั่วโลก: มุมมอง 3 แบบ ได้แก่ ท้องถิ่น, UTC และเขตเวลาที่เลือก
- การ์ดแปลงหลายใบสำหรับการเปรียบเทียบจำนวนมากได้อย่างสะดวก
- อินเทอร์เฟซที่ปรับขนาดได้และรองรับการใช้คีย์บอร์ด พร้อมความสามารถในการเข้าถึงที่ดี
- ช่วงเวลาล่าสุดและช่วงเวลาทั่วไปในตัว สามารถคัดลอกและใช้งานได้ทันที
ไทม์สแตมป์คืออะไร?
Unix timestamp คือจำนวนวินาทีหรือมิลลิวินาทีทั้งหมดที่ผ่านไปตั้งแต่ 1970-01-01 00:00:00 UTC (Unix Epoch)
Timestamp คือตัวเลขที่แสดงถึงเวลา โดยปกติจะอยู่ในรูปแบบวินาทีหรือมิลลิวินาที
จุดเริ่มต้นของ timestamp คือ 00:00:00 UTC ของวันที่ 1 มกราคม 1970 ซึ่งเรียกว่า Unix Epoch
Timestamp ถูกใช้ครั้งแรกในระบบปฏิบัติการ Unix จึงมักถูกเรียกว่า Unix timestamp
Timestamp ถูกนำมาใช้อย่างแพร่หลายในการเขียนโปรแกรมและการสื่อสารผ่านเครือข่าย โดยเฉพาะอย่างยิ่งในการพัฒนาเว็บ
ความแม่นยำที่พบบ่อย ได้แก่ วินาที (ตัวอย่าง: 1735689600) และมิลลิวินาที (ตัวอย่าง: 1735689600000) เมื่อแสดงวันที่เวลาที่เกี่ยวข้องกับเขตเวลา จะต้องมีการจัดรูปแบบและแสดงผลร่วมกับเขตเวลานั้น
ไทม์สแตมป์ทั่วไป (ช่วงเวลา)
ปัญหาไทม์สแตมป์ปี 2038
ปัญหา Year 2038 หมายถึงปัญหาที่ 32-bit signed integer ที่ใช้เก็บ Unix timestamp (ในรูปแบบวินาทีตั้งแต่ 00:00:00 UTC ของวันที่ 1 มกราคม 1970) จะเกิด overflow หลังจากวันที่ 19 มกราคม 2038 เวลา 03:14:07 UTC
เนื่องจากช่วงของ 32-bit signed integer อยู่ระหว่าง -2,147,483,648 ถึง 2,147,483,647 และ timestamp ของวันที่ 19 มกราคม 2038 เวลา 03:14:07 UTC คือ 2,147,483,647 ดังนั้น 32-bit signed integer จะไม่สามารถแสดง timestamp หลังจากจุดนั้นได้อีกต่อไป
ระบบหรือซอฟต์แวร์รุ่นเก่าที่ใช้ 32-bit time_t จะได้รับผลกระทบมากที่สุด ระบบสมัยใหม่มักใช้ 64-bit (เช่น จำนวนเต็ม 64-bit ในรูปแบบมิลลิวินาที) จึงไม่มีปัญหานี้
ขอแนะนำให้ใช้ timestamp แบบ 64-bit หรือไลบรารีเวลาที่รองรับช่วงวันที่กว้าง
วิธีรับ/แปลงไทม์สแตมป์ผ่านภาษาโปรแกรม
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
new Date(1735689600 * 1000).toISOString();
new Date('2025-01-01T00:00:00Z').getTime();
time(); // seconds
intval(microtime(true) * 1000); // milliseconds
date('Y-m-d H:i:s', 1735689600);
strtotime('2025-01-01 00:00:00');
import time
int(time.time()) # seconds
int(time.time() * 1000) # milliseconds
import datetime
datetime.datetime.utcfromtimestamp(1735689600).isoformat()
import datetime
int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
import "time"
time.Now().Unix() // seconds
time.Now().UnixMilli() // milliseconds
import "time"
time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
import "time"
ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
use chrono::Utc;
let now = Utc::now();
let sec = now.timestamp(); // seconds i64
let ms = now.timestamp_millis(); // milliseconds i128
use chrono::{DateTime, NaiveDateTime, Utc};
let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
.unwrap()
.and_utc();
let iso = dt.to_rfc3339();
use chrono::DateTime;
let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
.unwrap()
.timestamp();
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;
-- SQLite
SELECT strftime('%s', 'now');
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';
-- SQLite
SELECT datetime(1735689600, 'unixepoch');
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;
-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');