[英]Javascript - date range validation
我有一個表單用戶可以輸入任何日期,但是我想設置一個日期范圍驗證。 例如:從2012年1月12日到2013年1月1日,系統無法接受不在該范圍內的用戶的任何日期。.我已經嘗試過此javascript代碼,但它甚至都不會給我任何警報當日期不在范圍內時..
這是我表格的一部分:
echo "<tr><th bgcolor='FF6600'> Date <font size='4' color='red'>* </font></th>
<td> <input type='date' name='v2' value='' ></td></tr>";
echo "<tr><th bgcolor='FF6600'> Time <font size='4' color='red'>* </font></th>
<td> <input type='time' name='v3' value='' ></td></tr>";
echo "<tr><th bgcolor='FF6600'> Place <font size='4' color='red'>* </font></th>
<td> <input type='text' name='v4' value='' ></td></tr>";
這是javascript代碼
<script language="javascript">
function validation(form)
{
var v2 = document.getElementById('v2');
var date = v2.value;
if ( (v2 > new date('12/12/2012')) &&
(v2 < new date('1/1/2013')) ){
// date is in your valid range
return true;
} else {
// date is not in your valid range
alert("date is not in valid range")
return false;
}
}
</script>
要比較日期,您應該使用unix時間戳,現在從值中獲取的第一個日期是字符串,您無法將其與日期對象進行比較嗎?
確保您在Unix時間中有時間戳,然后進行比較:
function validation(form) {
var v2 = document.getElementById('v2'),
date = new Date(v2.value),
d1 = date.getTime(),
d2 = new Date('12/12/2012').getTime(),
d3 = new Date('1/1/2013').getTime();
if (d1 > d2 || d1 < d3) {
return true;
}else{
alert("date is not in valid range")
}
}
您可以創建如下函數:
function checkMyDateWithinRange(myDdate){
var startDate = new Date(2012, 11, 1);
var endDate = new Date(2012, 0, 1);
if (startDate < myDate && myDate < endDate) {
return true;
}
return false;
}
並測試任何日期,例如調用此函數:
var inputDate= document.getElementById('tbDate'),
date = new Date(inputDate.value);
if(!checkMyDateWithinRange(date)){
alert('Date is not in range!!!');
}
這是工作演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.