如何验证日期和月份


How do I validate day and month?

我有日和月的下拉列表,但有年份的文本框。 请放轻松 我是html,php或css的菜鸟。如何检查它是否是有效日期?例如(没有4月31日,闰年)编辑:这是为了输入出生日期。我想检查他们的出生日期输入是否有效。

<select name="day">
                    <option value='0'>1
                    <option value='1'>2
                    <option value='2'>3
                    <option value='3'>4
                    <option value='4'>5
                    <option value='5'>6
                    <option value='6'>7
                    <option value='7'>8
                    <option value='8'>9
                    <option value='9'>10
                    <option value='10'>11
                    <option value='11'>12
                    <option value='12'>13
                    <option value='13'>14
                    <option value='14'>15
                    <option value='15'>16
                    <option value='16'>17
                    <option value='17'>18
                    <option value='18'>19
                    <option value='19'>20
                    <option value='20'>21
                    <option value='21'>22
                    <option value='22'>23
                    <option value='23'>24
                    <option value='24'>25
                    <option value='25'>26
                    <option value='26'>27
                    <option value='27'>28
                    <option value='28'>29
                    <option value='29'>30
                    <option value='30'>31
                    </select>
<select name="month">
                    <option value='0'>Jan
                    <option value='1'>Feb
                    <option value='2'>Mar
                    <option value='3'>Apr
                    <option value='4'>May
                    <option value='5'>Jun
                    <option value='6'>Jul
                    <option value='7'>Aug
                    <option value='8'>Sep
                    <option value='9'>Oct
                    <option value='10'>Nov
                    <option value='11'>Dec
                    </select>
<input type="text" name="Year" size="4" maxlength="4" value="Year"/>

服务器端,您可以使用 checkdate 函数。

$month = intval($_POST["month"]);
$day = intval($_POST["day"]);
$year = intval($_POST["year"]);
if(checkdate($month, $day, $year) {
    // Date is correct
}

在客户端,你必须使用 JavaScript 语言来检查这一点。

您无法验证,但可以生成数据和年份

试试这个

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
         $(function() {
         $("#datepicker").datepicker();
         });
 </script>

  <p>Date: <input type="text" id="datepicker" /></p>

更新

终于找到了您的问题的解决方案,没有插件,什么都没有,只是一个代码

          <select name="month" onChange="changeDate(this.options[selectedIndex].value);">
<option value="na">Month</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="day" id="day">
<option value="na">Day</option>
</select>
<script language="JavaScript" type="text/javascript">
function changeDate(i){
var e = document.getElementById('day');
while(e.length>0)
e.remove(e.length-1);
var j=-1;
if(i=="na")
k=0;
else if(i==2)
k=28;
else if(i==4||i==6||i==9||i==11)
k=30;
else
k=31;
while(j++<k){
var s=document.createElement('option');
var e=document.getElementById('day');
if(j==0){
s.text="Day";
s.value="na";
try{
e.add(s,null);}
catch(ex){
e.add(s);}}
else{
s.text=j;
s.value=j;
try{
e.add(s,null);}
catch(ex){
e.add(s);}}}}
y = 1993;
while (y-->1940){
var s = document.createElement('option');
var e = document.getElementById('year');
s.text=y;
s.value=y;
try{
e.add(s,null);}
catch(ex){
e.add(s);}}
</script>