我试图显示两个日期之间的天数和月份差异
$date1 = $start;
$date2 = $end;
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
printf("%d years, %d months, %d days\n", $years, $months, $days);
然而,这显示为0 years, 0 months, 0 days
$start
和$end
中的日期格式为DD/MM/YYYY
答案 0 :(得分:1)
正如您在评论中所述, $start
和$end
中的日期采用DD/MM/YYYY
格式。因此,您需要先使用d-m-Y
或str_replace
将其替换为DateTime::createFromFormat
,因此请尝试使用
$date1 = str_replace('/','-',$start);
$date2 = str_replace('/','-',$end);