Javascript - 日期范围验证

标签 javascript date range

我有一个表单,用户可以输入任何日期,但我想设置一个日期范围验证。例如:从 1-12-2012 到 1-1-2013 并且系统无法接受任何不在该范围内的用户日期。我已经尝试过这个 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")
   }
}

关于Javascript - 日期范围验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13780881/

相关文章:

javascript - 以 Angular 4 在路由器导出外加载页面

mysql - Mongodb : Query based on time in ISODate format. 我的查询有什么问题?

python - 在两个 Dataframes Pandas 之间插入日期列

C#:用于创建随机均匀分布的潜在重叠范围的算法

python - 如何将一组重叠范围划分为非重叠范围?

javascript - 使用 IE 6 更改本地文件时刷新本地 HTML

javascript - Spip - 将数据从 Javascript 传递到隐藏的输入值

javascript - 如何在没有 jQuery 的情况下在移动设备中检测 JavaScript 中的长触摸

javascript - 如何解析迄今为止的 localStorage Item?

c++ - 我将如何在 C++20 中传递范围而不是迭代器对?