Khi làm việc với thời gian giữa PHP và MySQL, thường cần chuyển đổi giữa định dạng 12 giờ (có AM/PM) và 24 giờ.
Trong PHP: Sử dụng strtotime() và date()
$timeValue = '8:55 PM';
$changeTimeFormat = date('H:i:s', strtotime($timeValue));
echo "Định dạng 24 giờ = " . $changeTimeFormat;
// Kết quả: 20:55:00
Trong MySQL: Sử dụng DATE_FORMAT()
Chuyển từ DATETIME 24h sang định dạng 12h có AM/PM:
mysql> SELECT CONCAT('Định dạng 12 giờ trong MySQL=',
-> DATE_FORMAT('2019-03-12 20:55:00', '%l:%i %p')) AS OriginalTimeFormat;
+------------------------------------------------+ | OriginalTimeFormat | +------------------------------------------------+ | Định dạng 12 giờ trong MySQL=8:55 PM | +------------------------------------------------+
Bảng định dạng thời gian phổ biến
| Ký hiệu | Ý nghĩa | Ví dụ |
|---|---|---|
%H | Giờ 24h (00-23) | 20 |
%h / %I | Giờ 12h (01-12) | 08 |
%l | Giờ 12h không đệm 0 (1-12) | 8 |
%i | Phút (00-59) | 55 |
%s | Giây (00-59) | 00 |
%p | AM/PM | PM |
Lưu quan trọng
- MySQL lưu trữ TIME/DATETIME theo định dạng 24h nội bộ
- Chỉ dùng DATE_FORMAT() khi hiển thị cho người dùng
- Khi lưu từ PHP sang MySQL, hãy chuyển sang định dạng 24h (H:i:s) trước khi INSERT