我有一个表有两个日期列,一个是时间戳值(如1359380165),另一个是正常日期时间值(如2013-01-28 08:32:53)。
我想找出从现在(当前)到上述日期之间的时间间隔。所以结果是。
丹尼尔5分钟前更改了密码
詹妮弗3天前删除了她的电话号码。
有什么想法吗?

最佳答案

这个函数应该做一些与您所追求的类似的事情,尝试一下,它只需要一个像'1359380165'那样传递给它的unix时间戳。

function getRelativeTime($timestamp)
{
    $timeDifference = time() - $timestamp;
    $timePeriods    = array('second', 'minute', 'hour', 'day', 'week','month', 'years', 'decade');
    $timeLengths    = array('60', '60', '24', '7', '4.35', '12', '10');

    if ($timeDifference > 0)
    {
            $timeSuffix = 'ago';
    }
    else
    {
        $timeDifference = -$timeDifference;
        $timeSuffix     = 'to go';
    }

    for($i = 0; $timeDifference >= $timeLengths[$i]; $i++)
    {
        $timeDifference/= $timeLengths[$i];
        $timeDifference = round($timeDifference);
    }

    if($timeDifference != 1) $timePeriods[$i].= 's';

    return $timeDifference . ' ' . $timePeriods[$i] . ' ' . $timeSuffix;
}

09-11 17:15