如果输入类型是年份文本,如何使用checkdate函数? [英] How to use checkdate function if the input type is text for the year?

查看:104
本文介绍了如果输入类型是年份文本,如何使用checkdate函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下输入代码,希望用户键入他的出生年份.我的讲师要求我使用文本框让用户输入出生年份,日期和月份作为下拉列表.他还要求我们使用checkdate函数检查用户是否输入了正确的出生日期. (我正在使用Eclipse PDT)

I have the following input code that I want the user to key in his year of birth. My lecturer has asked me to use textbox for the user to put in the year of birth, date and month as dropdown list. And he also asked us to use the checkdate function to check if the user has enter the date of birth properly. ( I'm using Eclipse PDT)

这是在php页面中输入出生日期的代码:

This is the code for the input date of birth in php page:

<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长,字符串,位于第54行的C:\ xamp \ htdocs \ 1300532g \ Assignment_1 \ registerProcess.php中.

Warning: checkdate () expects parameter 3 to be long,string given in C:\xamp\htdocs\1300532g\Assignment_1\registerProcess.php on line 54.

问题:

如何使年份文本框仅包含数字而不包含负值? 我尝试使用其他输入类型属性,但也会显示错误:未定义的属性值(数字)

How to make the year text box to contain only number and no negative value ? I have tried to use other input type attribute but it also display error: Undefined attribute value(number)

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

推荐答案

type属性实际上与PHP处理值的方式无关.尝试广播int:

The type attribute is actually irrelevant to how PHP handles the value. Try casting it as int:

$month = $_POST['month'];
$day = $_POST['day'];
$year = (int) $_POST['year'];

if(checkdate($month,$day,$year))
{
    //$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函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆