使用JavaScript预填充日期输入字段(pre-populating date input fi

2019-08-06 05:05发布

我想预填充的日期为HTML“日期”输入栏,却忽略了价值我尝试过:

<html>
...
<input id='date' type='date'>
...
</html>

<script>
...
var myDate = new Date();
$("#date").val(myDate);
...

我也试图通过日期对象作为字符串

var myDate = new Date().toDateString();
$("#date").val(myDate);

当我打开窗体,日期字段为空。 如果我消除类型=“日期”标签,该值显示为一个字符串,但我没有访问日期选择器。 如何预填充日期输入,仍然有使用日期选择器的? 我难倒。

谢谢。

Answer 1:

它必须在ISO格式进行设置。

(function () {
    var date = new Date().toISOString().substring(0, 10),
        field = document.querySelector('#date');
    field.value = date;
    console.log(field.value);

})()

http://jsfiddle.net/GZ46K/



Answer 2:

谢谢j08691。 这种联系的答案。

对另一些人挣扎着跟我一样,当他们说的输入为“yyyy-MM-DD”的意思吧!

你必须有4位数字的年份。 你必须有一个破折号和没有空格。 你必须有2个位数的日和月。

在我的例子myDate.getMonth一月只会返回“1”(实际上它返回“0”,因为出于某种原因的JavaScript从0-11个月计算)。 要了解这一点我必须做到以下几点:

var myDate, day, month, year, date;
myDate = new Date();
day = myDate.getDate();
if (day <10)
  day = "0" + day;
month = myDate.getMonth() + 1;
if (month < 10)
  month = "0" + month;
year = myDate.getYear();
date = year + "-" + month + "-" + day;
$("#date").val(date);

我希望这可以帮助其他人不要浪费时间,像我一样十月之前或本月10日之前测试这个! 大声笑



Answer 3:

这是基于一个答案罗宾Drexlers但在本地时间。

//Get the local date in ISO format
var date = new Date();
date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
var datestr = date.toISOString().substring(0, 10);

//Set the field value
var field = document.querySelector('#date');
field.value = datestr;

如果它是你正在修改(而不是仅仅日期)不要忘了加时时间字段T00:00子串,或者更改为16个字符,例如:

//Get the local date and time in ISO format
var date = new Date();
date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
var datestr = date.toISOString().substring(0, 16);

//Set the field value
var field = document.querySelector('#datetime');
field.value = datestr;


Answer 4:

这下面的代码填充本地日期。 接受答案填充UTC日期。

  var date = new Date();
  field = document.querySelector('#date-id');
  var day = date.getDate();
  if(day<10){ day="0"+day;}

  var month = date.getMonth()+1;
  if(month<10){ month="0"+month;}

  field.value = date.getFullYear()+"-"+month+"-"+day;


文章来源: pre-populating date input field with Javascript