我目前有一份登记表,通过三项输入检查出生日期
日(dd) - 月(mm) - 年(yyyy)
我用来检查的代码:
function dateDiff($dformat, $endDate, $beginDate)
{
$date_parts1=explode($dformat, $beginDate);
$date_parts2=explode($dformat, $endDate);
$start_date=gregoriantojd($date_parts1[1], $date_parts1[0], $date_parts1[2]);
$end_date=gregoriantojd($date_parts2[1], $date_parts2[0], $date_parts2[2]);
return $end_date - $start_date;
}
//Enter date of birth below in MM/DD/YYYY
$dob="$day/$month/$year";
$dob2 = "$dob";
$one = round(dateDiff("/", date("d/m/Y", time()), $dob2)/365, 0) . " years.";
if($one <13){
?>
You must be 13 years of age or older to join!
<?
}else{
?>
YAY you're 13 or above!
<? } ?>
我收到错误说:
error: Warning: gregoriantojd() expects paramater 1 to be long string
任何人都可以帮我吗?
提前谢谢!
答案 0 :(得分:2)
如果能以非常简单的方式完成,为什么会变得复杂:
function dateDiff($dateFormat, $beginDate, $endDate)
{
$begin = DateTime::createFromFormat($dateFormat, $beginDate);
$end = DateTime::createFromFormat($dateFormat, $endDate);
$interval = $begin->diff($end);
if($interval->y >= 13)
{
echo 'Over 13';
}
else
{
echo 'Not 13';
}
}