🕐
← กลับไปคู่มือ

วิธีแปลง Unix Timestamp เป็นวันที่ที่มนุษย์อ่านได้

· แท็ก: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

ทำไมต้องแปลง 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 ของเราเพื่อการแปลงที่รวดเร็วและแม่นยำ พร้อมการตรวจจับเขตเวลาอัตโนมัติ