当前时间和以前保存的时间之间的时间差计算


time difference calculation in between current time and previously saved time

描述:我写了下面的函数来计算两次之间的差。。它有时会显示出一个非常有趣和奇怪的计算。。。有时效果很好。。这个代码出了什么问题?

PHP

function get_the_time_of_post($datetime1,$datetime2)
{
$month =  date("F",strtotime($datetime1));
$day = date("d",strtotime($datetime1));
$a = new DateTime($datetime1);
$b = new DateTime($datetime2);
$interval = $a->diff($b);
$hours = $interval->format("%H");
$seconds = $interval->format("%S");
$days = $interval->format("%D");
$minutes = $interval->format("%I");
$date_statement_return = $month." , ".$day;
if($days == 0)
{
    if($hours == 0)
    {
        if($minutes == 0)
        {
            if($seconds >= 0 && $seconds <=30)
            {
                $date_statement_return = $date_statement_return." <span style = 'font-size: 12px;'> moment ago</span>";
            }
            else 
            {
                $date_statement_return = $date_statement_return."<span style = 'font-size: 12px;'> ".$seconds." secs ago </span>";
            }
        }
        else if ($minutes >= 1 && $minutes <= 59)
        {
            $date_statement_return = $date_statement_return."<span style = 'font-size: 12px;'> ".$minutes." mins ago </span>";
        }
    }
    else if ($hours >= 1 && $hours <24)
    {
        $date_statement_return = $date_statement_return."<span style = 'font-size: 12px;'> ".$hours." hrs ago </span>";
    }
}
else if ($days > 0 && $days < 3)
{
    if($days == 1)
    {
        $date_statement_return = $date_statement_return."<span style = 'font-size: 12px;'> yesterday </span>";
    }
    else
    {
        $date_statement_return = $date_statement_return."<span style = 'font-size: 12px;'> ".$days." days ago </span>";
    }
}
return $date_statement_return;
}

您使用的格式字符返回的值以零开头。这使得与其他数字进行比较变得尴尬并且容易出错。

$hours   = $interval->format("%h");
$seconds = $interval->format("%s");
$days    = $interval->format("%d");
$minutes = $interval->format("%i");