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

时间:2018-04-16 06:48:35

标签: javascript jquery date time disabled-input

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

例如

禁用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 -->
&#13;
<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">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

好的,你明白了。我在这里为你做了一个演示,你将无法在中午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">

答案 1 :(得分:0)

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

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