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 á

Comments

Bài đăn phổ biến

Deploy website lên VPS hoặc Hosting với Gitlab CI/CD

MỞ CAMERA VÀ CHỤP ẢNH BẰNG PHP

Tính Bình Phương 1 Số Trong Python

Đường dẫn tương đối trong Java