2016-09-13 13 views
0

フォーム上で、ユーザーは生年月日を入力する必要があります。 PHPはすでに18年を達成しているかどうかを制御する必要があります。現在の日付とフォームに挿入された誕生日の日付の差

$birth = $_POST['data_nascita']; 
$str_birth = strtotime ($birth);   

$today = date("m/d/Y"); 
$str_today = strtotime ($today);     

if($today - $str_today < 567648000) { 
    echo'you can't drive a car in Italy because you are underage';exit(); 
} 
// 18 years * 31536000 second in 1 year = 567648000 

私は(今日は2016年9月13日なので、18年には完全にまだ費やすことはありません)誕生フィールドに1998年9月14日の日付を入れて、コントロールが機能しない場合。それは1998年9月15日から始まります。

なぜ2日間失ったのですか?

+0

http://php.net/manual/en/class.dateinterval.php – Deep

答えて

0

DateTime Classは、すべての日付と時刻の機能と数式が組み込まれているため、お勧めします。

アン例:

$birth = new DateTime($_POST['date_of_birth']); 
$today = new DateTime('now'); 

$diff = $birth->diff($today); 

if($diff->format('%Y') > 18) { 
    echo "Can drive"; 
} else { 
    echo "Can't Drive"; 
} 
+0

いけない...それは日時のLIBを見つけるために、私はしばらく時間がかかった心配...理由誰もが恐ろしいですPHPで手動で日付と時間を行うようだ – joshualawson

+0

正しい場合は、答えを受け入れること自由に感じる! – joshualawson

関連する問題