如何检测当前日期是否大于datetime?

时间:2015-05-18 09:25:49

标签: php algorithm function date datetime

实际上,我想创建一个函数,如果日期大于1,则返回日期,它应该像1小时前一样返回时间年龄。

我已经完成了近80%的Time Ago功能,现在我想添加一个功能。

function dateTimeExe ($time)
{

    $time = time() - $time; // to get the time since that moment

    $tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
    }

}

请查看输出,这可能有助于理解我的问题。

如果日期小于1,则表明其工作正常// 1 min ago1 hour ago 现在我想添加如果day大于1,那么它应该以这种格式// 18 May 2015返回日期。

2 个答案:

答案 0 :(得分:0)

你可以做的是通过getTimestamp()方法获取日期时间(http://php.net/manual/fr/class.datetime.php)的时间戳,最后你可以将它们相互比较

假设$ date是一个Datetime实例:

$time = time() - $time->getTimestamp();

答案 1 :(得分:0)

实际上,我在我的函数中添加了if语句,现在它正在工作

if ($time>86400) {
        return date('d F Y');
    }else{
        foreach ($tokens as $unit => $text) {
            if ($time < $unit) continue;
            $numberOfUnits = floor($time / $unit);
            return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'').' ago';
        }
    }