代码之家  ›  专栏  ›  技术社区  ›  Ramesh S

如何按时间禁用当前日期?

  •  0
  • Ramesh S  · 技术社区  · 7 年前

    我在我的网站上使用了输入日期类型。我想按时间禁用当前日期。

    例如

    之后 12:00:00 PM 当前日期 2018-04-16 残废

    我尝试了以下代码:

    <!-- disable past date -->
    $(function() {
      var dtToday = new Date();
    
      var month = dtToday.getMonth() + 1;
      var day = dtToday.getDate();
      var year = dtToday.getFullYear();
      if (month < 10)
        month = '0' + month.toString();
      if (day < 10)
        day = '0' + day.toString();
    
      var maxDate = year + '-' + month + '-' + day;
      //console.log(maxDate);
      $('#demo_date').attr('min', maxDate);
      $('#demo_date').attr('max', '2018-04-29');
    });
    <!-- disable past date -->
    
    <!-- disable date by time -->
    $(document).ready(function() {
      var time = new Date().toLocaleTimeString();
      if (time <= '12:00:00 PM') {
    
        // code for disable demo_date
      }
    });
    
    <!-- disable date by time -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <input placeholder="Select Date" class="textbox-n" type="text" name="demo_date" onfocus="(this.type='date')" id="demo_date">
    2 回复  |  直到 7 年前
        1
  •  1
  •   user9467714 user9467714    7 年前

    好的,你明白了。我在这里为您制作了一个演示,您将无法选择下午12:00之后的当前日期。干杯

    $(function() {
      var dtToday = new Date();
    
      var month = dtToday.getMonth() + 1;
      var day = dtToday.getDate();
      var year = dtToday.getFullYear();
     
     
      if (month < 10)
        month = '0' + month.toString();
      if (day < 10)
        day = '0' + day.toString();
    
      var maxDate = year + '-' + month + '-' + day;
      //console.log(maxDate);
     
       var time = new Date().toLocaleTimeString();
      if (time >= '12:00:00 PM') {
     day = day+1
     maxDate = year + '-' + month + '-' + day;
        // code for disable demo_date
      }
     
      
      
      $('#demo_date').attr('min', maxDate);
      $('#demo_date').attr('max', '2018-04-29');
    });
    <!-- disable past date -->
    
    <!-- disable date by time -->
    $(document).ready(function() {
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input placeholder="Select Date" class="textbox-n" type="text" name="demo_date" onfocus="(this.type='date')" id="demo_date">
        2
  •  0
  •   Hossein    7 年前

    通过浏览器控制台中的以下结果:

    >> var time = new Date().toLocaleTimeString();
    undefined
    >> time
    "11:27:28 AM"
    >> time <= '12:00:00 PM'
    true
    

    代码工作正常。但您应该定义表达式的另一部分。您应该定义:

    if( time >= some_date_value && time <= some_date_value ) 
    {
        // code for disable demo_date
    }