如何在PHP中显示一个月前

时间:2016-05-27 11:00:54

标签: php php-5.4

$ logintime值1年完成意味着,它将显示1年前,但假设2个月只完成意味着我想在2个月前显示,但我的代码显示像60天前,我不知道我在哪里做错误,剩余小时,分钟这工作正常,只有月份问题,$logintime = 2016-02-27 03:00:00

function timeAgo($logintime) {
    date_default_timezone_set('UTC');
    date_default_timezone_set('Asia/Kolkata');
    $start_date = new DateTime($logintime);
    $since_start = $start_date->diff(new DateTime(date("Y-m-d h:i:s")));

    if (intval($since_start->format('%Y') ) >= 1) {
        echo $year = $since_start->format('%Y years ago');
    } else if (intval($since_start->format('%m')) >= 12) {
        echo $months = $since_start->format('%m month ago');
    } else if (intval($since_start->format('%a')) >= 1) {
        echo $days = $since_start->format('%a days ago');
    } else if (intval($since_start->format('%h')) >= 1) {
        echo $hourss = $since_start->format('%h hours ago');    
    } else if (intval($since_start->format('%i')) >= 1) {
        echo $min = $since_start->format('%i minuts ago');  
    } else if (intval($since_start->format('%s')) >= 1) {
        echo $min = $since_start->format('%s seconds ago'); 
    }
}

1 个答案:

答案 0 :(得分:0)

你的这行代码:

else if(intval($since_start->format('%m')) >= 12){

如果月份> = 12,然后在几个月前显示,但你只有2个月。

因此,您应该考虑将其更改为:

else if(intval($since_start->format('%m')) >= 1){