我想预填充的日期为HTML“日期”输入栏,却忽略了价值我尝试过:
<html>
...
<input id='date' type='date'>
...
</html>
<script>
...
var myDate = new Date();
$("#date").val(myDate);
...
我也试图通过日期对象作为字符串
var myDate = new Date().toDateString();
$("#date").val(myDate);
当我打开窗体,日期字段为空。 如果我消除类型=“日期”标签,该值显示为一个字符串,但我没有访问日期选择器。 如何预填充日期输入,仍然有使用日期选择器的? 我难倒。
谢谢。
它必须在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/
谢谢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日之前测试这个! 大声笑
这是基于一个答案罗宾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;
这下面的代码填充本地日期。 接受答案填充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;