PHP - Chuyển đổi ngày giờ thành thời gian (1 tiếng trước, 1 ngày trước, 1 tháng trước, 1 năm trước)
Thỉnh thoảng thì bạn sẽ thấy 1 số trang blogs, trang thương mại điện tử phần ngày tháng họ sẽ hiển thị kiểu :
- vài giây trước
- 1 giờ trước
- 1 ngày trước
- 2 tuần trước
- 1 tháng trước
- ...
Vậy làm thế nào để được như vậy?
Trong PHP thì dễ dàng để thực hiện điều này.
Bước 1: Cần chuẩn bị 1 function helper để chuyển đổi ngàu giờ. Cụ thể thì cần:
function convert_time_elapsed_string($datetime) {
$now = new Datetime;
$ago = new Datetime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$str = array(
'y' => 'năm',
'm' => 'tháng',
'w' => 'tuần',
'd' => 'ngày',
'h' => 'tiếng'
'i' => 'phút',
's' => 'giây'
);
foreach($str as $key => &$value) {
if ($diff->$key) {
$value = $diff->$key . ' ' . $value;
} else {
unset($str[$key]);
}
}
return $str ? implode(', ', $str) . ' trước' : 'vừa tức thời';
}
Bước 2: Chỉ việc gọi ra và dùng thôi:
<?php echo convert_time_elapsed_string('2023-08-01 00:22:35'); ?>
Lưu ý quan trọng đầu vào $datetime phải là kiểu date trong PHP không thôi lỗi từa lưa luôn á
Tags:
code php