Ответ 1
Он должен быть установлен в формате ISO.
(function () {
var date = new Date().toISOString().substring(0, 10),
field = document.querySelector('#date');
field.value = date;
console.log(field.value);
})()
Я пытаюсь предварительно ввести дату в поле ввода даты "html", но игнорирует значения, которые я пытаюсь передать:
<html>
...
<input id='date' type='date'>
...
</html>
<script>
...
var myDate = new Date();
$("#date").val(myDate);
...
Я также пробовал передать объект даты в виде строки
var myDate = new Date().toDateString();
$("#date").val(myDate);
Когда я открываю форму, поле даты пуста. Если я удалю тэг типа = "дата", значение будет отображаться как строка, но тогда у меня нет доступа к datepicker. Как я предварительно заполняю ввод даты и все еще использую datepicker? Я в тупике.
Спасибо.
Он должен быть установлен в формате ISO.
(function () {
var date = new Date().toISOString().substring(0, 10),
field = document.querySelector('#date');
field.value = date;
console.log(field.value);
})()
Спасибо j08691. Эта ссылка была ответом.
Другим, кто борется, как я, когда говорят, что вход "yyyy-mm-dd", MEAN it!
У вас ДОЛЖНО иметь 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 числа месяца! LOL
Вот ответ, основанный на Robin 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;
Если это поле datetime, которое вы изменяете (в отличие от даты), не забудьте добавить время 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;