PHP-我怎样才能圆满完成日期

PHP-我怎样才能圆满完成日期,php,Php,我是这样计算两个日期的差值的: $date1= $_POST['dob']; $date2= $_POST['dor']; $date1 = date_create($date1); $date2 = date_create($date2); $diff = $date1->diff($date2); echo "<p> The difference is " . $diff->format('%y Years, %m month, %d days') . "<

我是这样计算两个日期的差值的:

$date1= $_POST['dob'];
$date2= $_POST['dor'];

$date1 = date_create($date1);
$date2 = date_create($date2);


$diff = $date1->diff($date2);
echo "<p> The difference is " . $diff->format('%y Years, %m month, %d days') . "</p>";
$date1=$\u POST['dob'];
$date2=$_POST['dor'];
$date1=创建日期($date1);
$date2=创建日期($date2);
$diff=$date1->diff($date2);
回声“差异是”$差异->格式(“%y年、%m月、%d天”)。“

”;
现在,我想将差值四舍五入,例如,如果差值计算为:

40年零个月零一天

我希望这被视为“41年”。任何超过这一年的事情都将被列入综述


有什么解决方案吗?

只需检查是否有一个月或一天,以及是否只有一年:

//.....
$diff = $date1->diff($date2);
$year = (int) $diff->format('%y');
if (((int)$diff->format('%m')) || ((int)$diff->format('%d'))) {
  $year++;
}

echo "<p> The difference is " . $year . " years </p>";
/。。。。。
$diff=$date1->diff($date2);
$year=(int)$diff->格式(“%y”);
如果(((int)$diff->format('%m'))||((int)$diff->format('%d')){
$year++;
}
回声“差异是”$一年。“年

”;
只需检查是否有一个月或一天,如果只是加上一年:

//.....
$diff = $date1->diff($date2);
$year = (int) $diff->format('%y');
if (((int)$diff->format('%m')) || ((int)$diff->format('%d'))) {
  $year++;
}

echo "<p> The difference is " . $year . " years </p>";
/。。。。。
$diff=$date1->diff($date2);
$year=(int)$diff->格式(“%y”);
如果(((int)$diff->format('%m'))||((int)$diff->format('%d')){
$year++;
}
回声“差异是”$一年。“年

”;
试试这个,从不同的日期中获取天数,用365(1年)除以,然后(四舍五入)除以天数

$date1 = "2016-04-05";
$date2 = "2088-05-05";
$date1 = date_create($date1);
$date2 = date_create($date2);

$diff = $date1->diff($date2);
//var_dump($diff);
$years = $diff->y;
$moths = $diff->m;
$days = $diff->d;
$hour = $diff->h;
$minits = $diff->i;
$second = $diff->s;
if($moths > 0 || $days > 0 || $hour > 0 || $minits > 0 || $second > 0)
{
    $years++;
}
echo "<p> The difference is " . $years . " years </p>";
$date1=“2016-04-05”;
$date2=“2088-05-05”;
$date1=创建日期($date1);
$date2=创建日期($date2);
$diff=$date1->diff($date2);
//var_dump($diff);
$years=$diff->y;
$moths=$diff->m;
$days=$diff->d;
$hour=$diff->h;
$minits=$diff->i;
$second=$diff->s;
如果($moths>0 | |$days>0 | |$hour>0 | |$minits>0 | |$second>0)
{
$years++;
}
回声“差异是”$年。“年

”;

试试这个,从不同的日期中获取天数,用365(1年)除以,然后(四舍五入)除以天数

$date1 = "2016-04-05";
$date2 = "2088-05-05";
$date1 = date_create($date1);
$date2 = date_create($date2);

$diff = $date1->diff($date2);
//var_dump($diff);
$years = $diff->y;
$moths = $diff->m;
$days = $diff->d;
$hour = $diff->h;
$minits = $diff->i;
$second = $diff->s;
if($moths > 0 || $days > 0 || $hour > 0 || $minits > 0 || $second > 0)
{
    $years++;
}
echo "<p> The difference is " . $years . " years </p>";
$date1=“2016-04-05”;
$date2=“2088-05-05”;
$date1=创建日期($date1);
$date2=创建日期($date2);
$diff=$date1->diff($date2);
//var_dump($diff);
$years=$diff->y;
$moths=$diff->m;
$days=$diff->d;
$hour=$diff->h;
$minits=$diff->i;
$second=$diff->s;
如果($moths>0 | |$days>0 | |$hour>0 | |$minits>0 | |$second>0)
{
$years++;
}
回声“差异是”$年。“年

”;

怎么可能是41年?当它仅仅比前一年多一天的时候?你到底想干什么?怎么可能是41年?当它仅仅比前一年多一天的时候?你到底想做什么?Dave有些年份有366天,所以你会有错误的结果Dave有些年份有366天,所以你会有错误的结果Hello nospor,谢谢,这对我来说非常有效。Hello nospor,谢谢,这对我来说非常有效。