Php 当前时间和以前保存的时间之间的时差计算
说明: 我编写了以下函数来计算两次之间的差值。。有时它显示了一个非常有趣和奇怪的计算。。。有时它工作得很完美。。这个代码有什么问题 PHPPhp 当前时间和以前保存的时间之间的时差计算,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
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的例子测试一下,让我们知道会发生什么。