Как использовать функцию checkdate, если тип ввода - текст для года?

У меня есть следующий код ввода, который я хочу, чтобы пользователь вводил год своего рождения. Мой лектор попросил меня использовать текстовое поле для ввода пользователем года рождения, даты и месяца в качестве раскрывающегося списка. И он также попросил нас использовать функцию checkdate, чтобы проверить, правильно ли пользователь ввел дату рождения. (Я использую Eclipse PDT)

Это код для ввода даты рождения на странице php:

<p>
<b>Date of Birth:</b>
<select size="1" name="day">
    <option value="" selected>Select Date</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>    
</select>

<select size="1" name="month">
    <option value="" selected>Select Month</option>
    <option value="01">January</option>
    <option value="02">February</option>
    <option value="03">March</option>
    <option value="04">April</option>
    <option value="05">May</option>
    <option value="06">June</option>
    <option value="07">July</option>
    <option value="08">August</option>
    <option value="09">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option> 
</select>


<b>Year:</b>
<input type="text" name="year" size="4" maxlength="4" value="" />

Поэтому, когда я использовал функцию checkdate,

$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
if(checkdate($month,$day,$year) == TRUE){
//$dob is a valid date
echo "<p>Date of birth:$day $month $year</p>";
}
else {
//$dob is a not valid date
$day = null;
$month = null;
$year = null;
echo "<p><b><font color=red>Please enter a <mark>valid</mark> date of birth!</font></b></p>";

Ошибка отображается:

Предупреждение: checkdate () ожидает, что параметр 3 будет длинным, строка указана в C: \ xamp \ htdocs \ 1300532g \ Assignment_1 \ registerProcess.php в строке 54.

Вопрос:

Как сделать так, чтобы текстовое поле года содержало только число и не содержало отрицательных значений? Я пытался использовать другой атрибут типа ввода, но он также отображает ошибку: неопределенное значение атрибута (число)

<input type="number" name="year" size="4" maxlength="4" value="" />

Ответы на вопрос(2)

Ваш ответ на вопрос