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

4

实际上,我想创建一个函数,如果天数大于1,则返回日期,否则应该返回时间差,例如1小时前。

我已经完成了将近80%的时间差功能,现在我想添加一个新功能。

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分钟前1小时前 现在我想添加如果天数大于1,则应以此格式返回日期// 2015年5月18日

2个回答

0
你可以通过Datetime类的getTimestamp()方法获取日期时间戳(http://php.net/manual/fr/class.datetime.php),然后将它们进行比较。
假设$date是一个Datetime实例:
$time = time() - $time->getTimestamp();

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';
        }
    }

2
是的,那几乎就是我在回答中写的,但有人给我点了踩。不完全一样的地方在于你应该返回date('d F Y', $original_time) - 给定时间的日期,而不是今天的日期!顺便说一句,你的回答应该是一个评论,可能是在你的问题下面或者在已经提到同样内容的回答下面。 - n-dru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接