php 怎么根据时间戳的时间,来判断距离当前时间,变成,多久之前,比如几天前,几个小时前。
展开阅读全文

php 怎么根据时间戳的时间,来判断距离当前时间,变成,多久之前,比如几天前,几个小时前。

在 PHP 中,你可以通过计算两个时间戳之间的差值,然后根据差值来确定两个时间点之间的时间间隔。以下是一个简单的示例,它展示了如何根据时间戳来判断距离当前时间多久之前:

function timeAgo($timestamp) {  
    $current_time = time();  
    $time_difference = $current_time - $timestamp;  
  
    $seconds = $time_difference;  
    $minutes = round($seconds / 60);  
    $hours = round($minutes / 60);  
    $days = round($hours / 24);  
    $weeks = round($days / 7);  
    $months = round($days / 30);  
    $years = round($days / 365);  
  
    // 判断时间间隔,并返回合适的时间描述  
    if ($seconds <= 60) {  
        return $seconds . ' 秒前';  
    } else if ($minutes <= 60) {  
        if ($minutes == 1) {  
            return '1 分钟前';  
        } else {  
            return $minutes . ' 分钟前';  
        }  
    } else if ($hours <= 24) {  
        if ($hours == 1) {  
            return '1 小时前';  
        } else {  
            return $hours . ' 小时前';  
        }  
    } else if ($days <= 7) {  
        if ($days == 1) {  
            return '1 天前';  
        } else {  
            return $days . ' 天前';  
        }  
    } else if ($weeks <= 4.3) { // 4.3周约等于一个月  
        if ($weeks == 1) {  
            return '1 周前';  
        } else {  
            return $weeks . ' 周前';  
        }  
    } else if ($months <= 12) {  
        if ($months == 1) {  
            return '1 个月前';  
        } else {  
            return $months . ' 个月前';  
        }  
    } else {  
        if ($years == 1) {  
            return '1 年前';  
        } else {  
            return $years . ' 年前';  
        }  
    }  
}  
  
// 示例用法  
$timestamp = strtotime('2023-07-01 12:00:00'); // 这里替换为你要判断的时间戳  
echo timeAgo($timestamp); // 输出:几天前,几个小时前,等等

这个示例函数 timeAgo 接受一个时间戳作为参数,然后计算它与当前时间之间的差值。根据差值的大小,它返回相应的时间描述,如“几秒前”、“几分钟前”、“几天前”等。你可以根据需要调整这个函数,以满足你的具体需求。