日期输入类型 HTML 中的变量“min”

variable 'min' in date input type of HTML

本文关键字:变量 min 输入 类型 HTML 日期      更新时间:2023-09-26

我想要一个限制用户输入今天日期后至少 5 天的日期的 JavaScript。我已经编写了用于获取今天日期的 js,但我无法弄清楚如何动态更改"最小"值。在这里,我输入了 min 的常量值作为 2016-02-14.如何将其设置为变量?

<input type='date' id='d1' name='d1' min="2016-02-14">
<script type="text/javascript">
var d1 = new Date();
var y1= d1.getFullYear();
var m1 = d1.getMonth()+1;
if(m1<10)
  m1="0"+m1;
var dt1 = d1.getDate();
if(dt1<10)
  dt1 = "0"+dt1;
var d2 = y1+"-"+m1+"-"+dt1;
document.getElementById('d1').value=d2;
</script>

试试这个 - 不确定它是否适用于所有浏览器 - Firefox 和 IE 可能不支持日期/时间输入的最小值和最大值。最好使用日期时间或时间戳并将其用作数字(很容易设置为最小值(并修改输入。

 <!DOCTYPE html>
<html>
<head>
<title>Date</title>
    <meta charset="utf-8">
</head>
<body>
    <form>
        <input type='date' id='d1' name='d1' min="">
    </form>
<script>
    var d1 = new Date();
        var y1= d1.getFullYear();
        var m1 = d1.getMonth()+1;
            if(m1<10){ m1="0"+m1};
        var dt1 = d1.getDate();
            if(dt1<10){dt1 = "0"+dt1};
        var d2 = y1+"-"+m1+"-"+dt1;
    document.getElementById('d1').value=d2;

    var future = new Date();
future.setDate(future.getDate() + 5);
 var futureYear= future.getFullYear();
    var futureMonth = future.getMonth()+1;
        if(futureMonth<10){futureMonth="0"+futureMonth};
    var futureDay = future.getDate();
        if(futureDay<10){futureDay = "0"+futureDay};
    var futureDate = futureYear+"-"+futureMonth+"-"+futureDay;
    document.getElementById('d1').setAttribute("min", futureDate);
</script>
</body>
</html>