2011-02-10 95 views
0

我想驗證表單中的基本日期格式。日期的形式有月份,日期和年份三個字段。我想這樣做,如果選擇一月份,三月份,五月份,七月份,八月份,十月份或十二月份,那麼它應該在當天顯示31天。如果選擇二月,則應顯示28天,否則顯示30天。 此外,如果某人選擇一個月前一天,然後選擇月份,則應將所選日期重置爲1. 這是我的表單代碼。我會非常感謝任何幫助。根據月份顯示錶單字段中的天數

<?php 
$monthOptions = ''; 
$dayOptions = ''; 
$yearOptions = ''; 

for($month=1; $month<=12; $month++){ 
    $monthName = date("M", mktime(0, 0, 0, $month)); 
    $monthOptions .= "<option value=\"$month\">$monthName</option>\n"; 
} 
for($day=1; $day<=31; $day++){ 
    $dayOptions .= "<option value=\"$day\">$day</option>\n"; 
} 
for($year=1900; $year<=2010; $year++){ 
    $yearOptions .= "<option value=\"$year\">$year</option>\n"; 
} 
?> 
<html> 

<body> 
Select date:<br /> 
<select name="month" id="month" > 
<?php echo $monthOptions; ?> 
</select> 

<select name="day" id="day"> 
<?php echo $dayOptions; ?> 
</select> 

<select name="year" id="year" > 
<?php echo $yearOptions; ?> 
</select> 

</body> 
</html> 
+2

閏年呢? – 2011-02-10 22:34:18

回答

0

我有點討厭建議增加另一個JS庫到您的項目,但因爲你已經在使用jQuery,我會點你朝着jQuery UI - 尤其是,jQuery UI Datepicker。它會照顧所有這些挑剔的日期問題(我討厭與日期和時間工作 - 有這麼多gotchas)。用戶將點擊輸入(或日期選擇按鈕),他們將通過在日曆上單擊來選擇日期(或者他們可以直接將其輸入到輸入中)。你會得到一個單一的輸入而不是三個日期,但如果你需要更細粒度的數據,它很容易被Date.parse(或PHP等價物)解析。

免責聲明:如果日期可以超過幾年,使用起來會有些惱人。有箭頭可以更改日曆窗口小部件上的月份,但是一年中沒有。有鍵盤快捷鍵(Ctrl + PgUp/PgDown),但沒有辦法知道沒有閱讀文檔,所以如果你這樣做,你可能想要通過輸入做筆記。可能還有一種方法可以添加年份按鈕,但我確定沒有找到它...

希望這有助於您!

相關問題