Giới thiệu
Timestamp từ SQL Server thường là milliseconds từ epoch (1/1/1970). PHP DateTime::setTimestamp() nhận giây. Cần chia 1000 và làm tròn.
Code PHP
<?php
$SQLTimestamp = 1600320600000; // milliseconds
$seconds = round($SQLTimestamp / 1000, 0); // chuyển sang giây
$dateObj = new DateTime();
$dateObj->setTimestamp($seconds);
echo $dateObj->format('Y-m-d H:i:s'); // 2020-09-17 05:30:00
?>
Giải thích
round($SQLTimestamp/1000, 0): Chuyển ms → giây, làm tròn.new DateTime(): Tạo đối tượng ngày giờ.setTimestamp(): Thiết lập thời gian từ Unix timestamp (giây).format('Y-m-d H:i:s'): Định dạng đầu ra.
Lưu ý: Nếu timestamp đã là giây (10 chữ số), không cần chia 1000. Kiểm tra độ dài timestamp để quyết định.