2012-03-24 13 views
1

可能重複:
How to calculate the difference between two dates using PHP?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

有了您的$ DOB時間戳,您可以減去從當前日期的時間戳,然後與你的MINAGE平衡這些值。例如:

if(($dob-time())=>$minAge) { 
    //OVER 8 YEARS 
} else { 
    //UNDER 8 
} 

雖然,用這種方法你比較MINAGE如無天,小時,分鐘或秒時間戳,因此使用在這個例子中所描述的「時間()」的值時,記住這一點。

+1

由於這是最簡單的解決方案,後測試它我想它的偉大工程 – 2012-03-24 17:33:10

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 
} 
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 '); 
+0

您可能希望將功能更改爲其他... ...在此之前被舉報。 – BoltClock 2012-03-24 17:44:57

+0

爲什麼有人會標誌的回答其中包含工作代碼?或者「色情」這個詞冒犯了某人? – 2012-03-24 17:48:10

+0

好吧,好吧......我不知道,我們是如此的敏感位置 - 對不起。我認爲這很有趣,而不是冒犯。 – Nemoden 2012-03-24 17:50:39