首页 > 解决方案 > JS为带有IF的HTML输入日期设置最小日期

问题描述

对不起我的错误,但我很菜鸟:D 我必须在 HTML 的输入中设置最小日期,并带有一个 IF:如果今天是 > 01-06-2019 将最小值设置为今天 ELSE 将最小值设置为 01-06-2019 任何人都可以帮我?这是我的代码:

function setMin1() {
	var varData = new Date('01-06-2019'); //dd-mm-YYYY
	var today = new Date();
	today.setHours(0,0,0,0);

	if(varData >= today) {
		document.getElementById('set').min = '01-06-2019';
	}
	else {
		document.getElementById('set').min = '<?php echo date('d-m-Y');?>';
	}
}

标签: javascripthtmldateinputmin

解决方案


我猜输入是类型date。您可以使用 min 属性设置最小值,例如

<input type="date" name="someDate" min="2019-01-01">

请注意,在 HTML 中,ISO 8601 格式的日期将被视为本地日期,但在由内置 ECMAScript 解析器解析时将被视为 UTC。

如果您使用脚本设置该值,则您依赖于主机系统的时钟是否准确。可以使用setAttribute设置该值:

window.onload = function(){

  var d = new Date();

  // Build ISO 8601 format date string
  var s = d.getFullYear() + '-' + 
          ('0' + (d.getMonth()+1)).slice(-2) + '-' +
          ('0' + d.getDate()).slice(-2);

  // Set the value of the value and min attributes
  var node = document.querySelector('input');
  if (node) {
    node.setAttribute('min', s);
    node.setAttribute('value', s);
  }
}
<form onsubmit="return false;">
  <input type="date"><br>
  <input type="reset">
</form>


推荐阅读