1

ユーザーが任意の日付を入力できるフォームを持っていますが、日付範囲の検証を設定したいと考えています。例: 2012 年 1 月 12 日から 2013 年 1 月 1 日まで、システムはユーザーからの範囲外の日付を受け入れることができません。日付が範囲外の場合..

これは私のフォームの一部です:

 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>
4

2 に答える 2

6

日付を比較するには、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")
   }
}
于 2012-12-08T19:14:34.207 に答える
0

次のような関数を作成できます。

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!!!');
}

これがワーキングデモです

于 2012-12-08T20:57:44.943 に答える