Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当前时间和以前保存的时间之间的时差计算_Php_Time - Fatal编程技术网

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

Php 当前时间和以前保存的时间之间的时差计算,php,time,Php,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 Da

说明: 我编写了以下函数来计算两次之间的差值。。有时它显示了一个非常有趣和奇怪的计算。。。有时它工作得很完美。。这个代码有什么问题

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;
}
函数获取帖子的时间($datetime1,$datetime2)
{
$month=日期(“F”,标准时间($datetime1));
$day=日期(“d”,标准时间($datetime1));
$a=新的日期时间($datetime1);
$b=新的日期时间($datetime2);
$interval=$a->diff($b);
$hours=$interval->format(“%H”);
$seconds=$interval->format(“%S”);
$days=$interval->format(“%D”);
$minutes=$interval->format(“%I”);
$date\u statement\u return=$month.“,”$day;
如果($days==0)
{
如果($hours==0)
{
如果($minutes==0)
{
如果($seconds>=0&&$seconds=1&&$minutes=1&&$hours 0&&$days<3)
{
如果($days==1)
{
$date\u statement\u return=$date\u statement\u return.“昨天”;
}
其他的
{
$date_statement_return=$date_statement_return。“$days.”天以前;
}
}
返回$日期\报表\返回;
}

您使用的格式字符返回带前导零的值。这使得与其他数字进行比较时很尴尬,并且容易出错

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

有时它会显示一个非常有趣和奇怪的计算
你需要做的不仅仅是说这些。告诉我们它如何返回错误的值。否则我们怎么知道是什么错了?@johncode我的意思是每次运行函数时输出中的随机变化……这就是我写的原因"有时很完美。我很抱歉我想展示一些例子??是的,例子对诊断问题很有帮助。你应该展示一些有效的例子和无效的例子。这就是问题所在??我的条件语句和嵌套是正确的??这看起来像是问题,但我说不出来,因为我没有任何关于w的例子测试一下,让我们知道会发生什么。