การแปลง Timestamp (Milliseconds) เป็น Date String ใน PHP
Timestamp จากฐานข้อมูลมักเป็น Milliseconds ตั้งแต่ Epoch (1970-01-01) ต้องแปลงเป็นวินาทีก่อนจึงจะใช้กับ DateTime ของ PHP ได้
ขั้นตอน
- หาร 1000 เพื่อแปลง Milliseconds → Seconds
- ใช้
DateTime::setTimestamp() - จัดรูปแบบด้วย
format()
โค้ด PHP
<?php
$SQLTimestamp = 1600320600000; // Milliseconds
// แปลงเป็นวินาที
$seconds = round($SQLTimestamp / 1000, 0);
// สร้าง DateTime และตั้ง timestamp
$PHPDateObject = new DateTime();
$PHPDateObject->setTimestamp($seconds);
// แสดงผลในรูปแบบ Y-m-d H:i:s
echo $PHPDateObject->format('Y-m-d H:i:s');
?>
ผลลัพธ์
2020-09-17 05:30:00
หมายเหตุ: PHP DateTime ใช้ Timezone เริ่มต้นของ Server หากต้องการ Timezone เฉพาะ ใช้ new DateTime('@' . $seconds, new DateTimeZone('Asia/Bangkok')) (PHP 7.1+)