-2

ユーザーが生年月日をhtmlフォームに入力して送信ボタンを押すと、年齢を計算する方法を探しています。同様の質問を見ましたが、それらはすべて既存の年齢の計算に関するものですが、ここでは日付を入力してから年齢を計算することについて話しています。

コードを作成しようとしましたが、年齢が間違っています。

<form action="test.php" method="post">   

Enter your date of birth:
<select name="month" >
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>

</select>
<select name="day" id="day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="year" id="year">
<option value="1">2013</option>
<option value="2">2012</option>
<option value="3">2011</option>
</select>
<input type="submit" name="submit" value="age" >


<?php
if (isset($_POST['submit']))
{
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
if ($year != '' && $month != '' && $day != '') {
$birthDate = $year.'-'.$month.'-'.$day;

$age = (date("md", date("U", mktime(0, 0, 0, $birthDate[2], $birthDate[1],  $birthDate[0]))) > date("md") ? ((date("Y")-$birthDate[0])-1):(date("Y")-$birthDate[0]));
echo "Age is: ".$age;
}}
?>
4

2 に答える 2

2

あなたの日付は文字列であり、それを使用して計算しようとすると、最初に文字列を日付に解析してみてください:

$birthDate = $year.'-'.$month.'-'.$day;

$time = strtotime($birthDate);

$birthDate= date('Y-m-d',$time);

また閉じる</form>

于 2013-08-27T23:42:06.757 に答える