可能重复:
How to calculate the difference between two dates using PHP?
当用户注册时,系统必须检查他们是否已经足够老了,在这个例子中他们必须至少8岁
$minAge = strtotime(date("d")."-".date("m")."-".(date("Y")-8));
$dob = strtotime($day."-".$month."-".$year);
$ minAge = 01-03-2004,$ dob = 01-02-2011
我基本上需要确保这个人在2004年之前出生,但我想知道我是否必须转换时间戳来进行比较,或者是否有更有效的方法。
感谢任何帮助,谢谢
答案 0 :(得分:0)
使用$ dob时间戳,您可以从当前日期的时间戳中减去该值,然后将这些值与您的minAge进行平衡。例如:
if(($dob-time())=>$minAge) {
//OVER 8 YEARS
} else {
//UNDER 8
}
尽管如此,使用此方法您将minage作为时间戳进行比较而没有天,小时,分钟或秒,因此在使用“time()”值时请记住这一点,如本示例所述。
答案 1 :(得分:0)
我认为你只需要这样做:
$dob = strtotime('1-1-2012');
$minAge = (60*60*24*365*8);//number of seconds of 8 years
if(time()-$dob>= $minAge)
{
//OK
}
else
{
//NOT OK
}
答案 2 :(得分:0)
使用PHP 5,您可以使用DateTime
类来处理这类事情:
function allowed_to_watch_adult_movies($birthday) {
$min_age = 18;
$user = new DateTime($birthday);
$min_birthday = new DateTime('now - '.$min_age.' years');
$interval = date_diff($min_birthday, $user);
return $interval->invert == 1;
}
printf('Kid is %sallowed to watch adult movies<br />' ,
allowed_to_watch_adult_movies('2004-05-18') ? '' : 'not ' );
printf('Grandpa is %sallowed to watch adult movies, but he does not care<br />' ,
allowed_to_watch_adult_movies('1954-05-12') ? '' : 'not ' );