php – 相对日期格式总是输出“3小时前”

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 相对日期格式总是输出“3小时前”脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用PHP计算指定日期和当前日期之间的日期间隔.我这样做,所以我可以打印社会友好的时间戳,如几分钟前和2小时前

当我来到小时部分时,我得到的东西在PHP中表现得非常有趣.下面是完整的工作代码,但当您使用此代码替换小时部分时,它总是打印出3个小时.

定义常数DATE

// The current date timestamp
define('DATE',time());

Buggy代码在这里

//Only the hours part that' doing something weird
case ($interval >= 3600 && $interval < 86400) :
            $return = ( date('H',$interval) < 2)
                ? (int)date('H',$interval) . ' hour ago'
                : (int)date('H',$interval) . ' hours ago';
            break;

它在指定的日期时断开,假设在这种情况下,创建日期只是一个多小时前因此导致间隔等于3660秒.似乎日期方法调用日期(‘H’,3660)导致03.它不应该导致01吗?毕竟只需一个多小时.

这里的工作代码

public static function getTimeInterval($date)
{
    $interval = DATE - $date;

    $return = '';

    swITch ( $interval )
    {
        case ($interval <= 60) :
            $return = 'a few secs ago';
            break;

        case ($interval > 60 &amp;& $interval < 3600) :
            $return = (int)date('i',$interval) . ' mins ago';
            break;

        case ($interval >= 3600 && $interval < 86400) :
            $return = ( abs((date('G',DATE) - date('G',$date))) < 2)
                ? abs((date('G',$date))) . ' hour ago'
                : abs((date('G',$date))) . ' hours ago';
            break;

        case ($interval >= 86400 && $interval < 604800) :
            $return = ( (int)date('j',$interval) === 1)
                ? (int)date('j',$interval) . ' day ago'
                : (int)date('j',$interval) . ' days ago';
            break;

        case ($interval > 604800 && $interval <= 2592000) :
            $return = 'A few weeks ago';
            break;
        case ($interval > 2592000) :
            $return = date('n',$interval) . ' months ago';
            break;
        case ($interval > 31536000) :
            $return = 'Over a year ago';
            break;

    }

    return $return;

}

解决方法

date()的结果取决于您的时区.您可以通过date_default_timezone_set()手动设置时区来更改此行为

脚本宝典总结

以上是脚本宝典为你收集整理的php – 相对日期格式总是输出“3小时前”全部内容,希望文章能够帮你解决php – 相对日期格式总是输出“3小时前”所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。