วิธีแปลง Unix Timestamp เป็นวันที่ที่มนุษย์อ่านได้
ทำไมต้องแปลง Unix Timestamp?
Unix timestamp เหมาะสำหรับเครื่องจักร — จำนวนเต็มเพียงหนึ่งเดียวที่กะทัดรัด ไม่คลุมเครือ และง่ายต่อการจัดเรียง แต่สำหรับมนุษย์แล้ว 1785292800 ไม่มีความหมายใดๆ จนกว่าจะถูกแปลเป็นวันที่และเวลาในปฏิทิน ไม่ว่าคุณจะกำลังดีบักไฟล์ล็อก วิเคราะห์ระเบียนฐานข้อมูล หรืออ่านการตอบกลับจาก API การรู้วิธีแปลง timestamp อย่างรวดเร็วเป็นทักษะที่จำเป็น
วิธีที่ 1: ใช้ตัวแปลง Unix Timestamp ออนไลน์ของเรา
วิธีที่เร็วและน่าเชื่อถือที่สุดคือการใช้เครื่องมือแปลงเฉพาะทาง
Unix Timestamp Converter ของเรา รองรับ timestamp ทั้งแบบวินาทีและมิลลิวินาที ตรวจจับความละเอียดโดยอัตโนมัติ และแสดงผลลัพธ์ในหลายเขตเวลาพร้อมกัน คุณยังสามารถทำในทิศทางตรงกันข้าม — ป้อนวันที่ที่มนุษย์อ่านได้และรับ Unix timestamp ที่สอดคล้องกัน
วิธีนี้เหมาะเมื่อคุณต้องการแปลงครั้งเดียวอย่างรวดเร็วโดยไม่ต้องใช้ command line
วิธีที่ 2: ใช้ Linux Command Line (คำสั่ง date)
หากคุณสามารถเข้าถึงเทอร์มินัล Linux หรือ macOS คำสั่ง date คือเพื่อนที่ดีที่สุดของคุณ
แปลง Timestamp เป็นวันที่ที่มนุษย์อ่านได้
# บน GNU Linux (ส่วนใหญ่ของ distribution)
date -d @1785292800
# ระบุรูปแบบที่กำหนดเอง
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# ผลลัพธ์: 2026-07-19 00:00:00
# พร้อมเขตเวลา
TZ="America/New_York" date -d @1785292800
# ผลลัพธ์: Sun Jul 19 00:00:00 EDT 2026
บน macOS (BSD date) ไวยากรณ์จะแตกต่างเล็กน้อย:
# บน macOS
date -r 1785292800
# พร้อมรูปแบบที่กำหนดเอง
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"
แปลงวันที่เป็น Unix Timestamp
# บน GNU Linux
date -d "2026-07-19 00:00:00" +%s
# บน macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s
วิธีที่ 3: การคำนวณด้วยมือ
แม้ว่าคุณแทบจะไม่จำเป็นต้องทำด้วยมือ แต่การเข้าใจคณิตศาสตร์เบื้องหลังช่วยให้เข้าใจการทำงานของระบบ
สูตร
seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds
ส่วนที่ยุ่งยากคือการคำนวณ ปีอธิกสุรทิน ปีที่เป็นปีอธิกสุรทินคือปีที่หารด้วย 4 ลงตัว ยกเว้นปีคริสต์ศตวรรษที่หารด้วย 400 ไม่ลงตัว
การประมาณค่าทางจิตอย่างรวดเร็ว
- 86,400 วินาที = 1 วัน
- 604,800 วินาที = 1 สัปดาห์
- ประมาณ 31,536,000 วินาที = 1 ปีปกติ
- ประมาณ 31,622,400 วินาที = 1 ปีอธิกสุรทิน
สำหรับการประมาณคร่าวๆ คุณสามารถคำนวณ timestamp / 86400 เพื่อหาจำนวนวันนับตั้งแต่ epoch แล้วเพิ่มจำนวนวันนั้นไปยังวันที่ 1 มกราคม 1970
วิธีที่ 4: ใช้ภาษาโปรแกรม
ภาษาโปรแกรมหลักทุกภาษามีฟังก์ชันในตัวสำหรับการแปลง timestamp นี่คือภาษาที่พบบ่อยที่สุด:
JavaScript (Browser หรือ Node.js)
// Timestamp เป็น date (JavaScript ใช้มิลลิวินาที)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// ผลลัพธ์: 2026-07-19T00:00:00.000Z
// Date เป็น timestamp
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// ผลลัพธ์: 1785292800
Python
from datetime import datetime
# Timestamp เป็น date
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# ผลลัพธ์: 2026-07-19T00:00:00
# แบบที่รับรู้เขตเวลา (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# ผลลัพธ์: 2026-07-19T00:00:00-04:00
# Date เป็น timestamp
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)
PHP
<?php
// Timestamp เป็น date
echo date("Y-m-d H:i:s", 1785292800);
// ผลลัพธ์: 2026-07-19 00:00:00
// Date เป็น timestamp
echo strtotime("2026-07-19 00:00:00");
// ผลลัพธ์: 1785292800
วิธีที่ 5: ใช้ซอฟต์แวร์สเปรดชีต
Google Sheets
ใช้สูตร =DATE(1970,1,1) + A1 / 86400 โดยที่ A1 มีค่า timestamp จัดรูปแบบเซลล์ผลลัพธ์เป็นวันที่
Microsoft Excel
=DATE(1970,1,1) + A1 / 86400
บน Windows Excel คุณอาจต้องใช้:
=(A1 / 86400) + DATE(1970,1,1)
กรณีพิเศษที่ควรระวัง
วินาที vs มิลลิวินาที
นี่คือข้อผิดพลาดที่พบบ่อยที่สุด หากคุณส่งค่ามิลลิวินาที (เช่น 1785292800000) ไปยังฟังก์ชันที่คาดว่าจะได้รับวินาที คุณจะได้วันที่ที่ไกลออกไปประมาณ 56,000 ปีในอนาคต
วิธีสังเกต:
- หากตัวเลขมี 10 หลัก มีแนวโน้มเป็นวินาที
- หากตัวเลขมี 13 หลัก มีแนวโน้มเป็นมิลลิวินาที
- บางระบบยังใช้ ไมโครวินาที (16 หลัก) หรือ นาโนวินาที (19 หลัก)
Timestamp ที่เป็นลบ (วันที่ก่อนปี 1970)
Unix timestamp สามารถแสดงวันที่ก่อน epoch โดยใช้จำนวนลบ:
date -d @-126230400
# ผลลัพธ์: Tue Dec 31 00:00:00 -1969
ไม่ใช่ทุกเครื่องมือแปลงจะจัดการ timestamp ที่เป็นลบได้อย่างถูกต้อง ตัวแปลงออนไลน์ของเราทำได้
Leap Seconds
Unix time จงใจละเลย leap seconds Unix timestamp จะไม่แสดง :59:60 แม้ในระหว่างการเพิ่ม leap seconds นั่นหมายความว่า timestamp จะคลาดเคลื่อนจากเวลาอะตอมเล็กน้อย (ปัจจุบัน 27 วินาที) แต่เพิ่มขึ้นเรื่อยๆ
สรุป
| วิธีการ | เหมาะสำหรับ |
|--------|----------|
| ตัวแปลงออนไลน์ (/linux-timestamp) | การแปลงครั้งเดียวอย่างรวดเร็ว |
| คำสั่ง date | ผู้ใช้เทอร์มินัลและสคริปต์ |
| การคำนวณด้วยมือ | การเข้าใจวิธีการทำงาน |
| ภาษาโปรแกรม | ระบบอัตโนมัติและแอปพลิเคชัน |
| สเปรดชีต | การวิเคราะห์ข้อมูล |
ใช้ Unix Timestamp Converter ของเราเพื่อการแปลงที่รวดเร็วและแม่นยำ พร้อมการตรวจจับเขตเวลาอัตโนมัติ