我需要提供2个日期之后的年数.这是我的代码:
function daysDifference($endDate, $beginDate)
{
$date_parts1=explode("-", $beginDate);
$date_parts2=explode("-", $endDate);
$start_date=gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]);
$end_date=gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]);
$diff = $end_date - $start_date;
echo $diff;
$years = floor($diff / (365.25*60*60*24));
return $years;
}
echo daysDifference('2011-03-12','2008-03-09');
Run Code Online (Sandbox Code Playgroud)
在$diff给出了一些输出.当我回来时$years,我正在0.我做错了什么?
Mat*_*hew 122
$d1 = new DateTime('2011-03-12');
$d2 = new DateTime('2008-03-09');
$diff = $d2->diff($d1);
echo $diff->y;
Run Code Online (Sandbox Code Playgroud)
小智 8
在PHP 5.2盒子上(是的,它们实际上仍然存在),因此在没有DateTime :: diff()支持的情况下,我最终使用了:
$dateString='10-05-1975';
$years = round((time()-strtotime($dateString))/(3600*24*365.25))
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN -4
如果您想要两个日期之间的年数,为什么不直接使用以下内容:
function yearsDifference($endDate, $beginDate)
{
$date_parts1=explode("-", $beginDate);
$date_parts2=explode("-", $endDate);
return $date_parts2[0] - $date_parts1[0];
}
echo yearsDifference('2011-03-12','2008-03-09');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这会让你:
3
Run Code Online (Sandbox Code Playgroud)