Как установить значение по умолчанию для ввода [тип = дата]

Я пробовал (JSFiddle):

<input type="date" value="2012-3-23">

но это не работает, как я могу установить значение по умолчанию?


person hh54188    schedule 08.01.2013    source источник
comment
Значение установлено в FF16, какой у вас браузер?   -  person Kevin Bowersox    schedule 08.01.2013
comment
@KevinBowersox: хром 23   -  person hh54188    schedule 08.01.2013
comment
Этот вопрос не следует помечать как повторяющийся. Есть разница, получаете ли вы значение по умолчанию с сервера или просто хотите сегодняшнее значение. Это особенно верно для локализованных форматов, см. stackoverflow.com/a/57165475/475997.   -  person Frank Hintsch    schedule 23.07.2019


Ответы (12)


Дата должна иметь формат YYYY-MM-DD. Одноразрядные дни и месяцы должны быть дополнены 0. Январь равен 01.

Из документации:

Строка, представляющая дату.

Значение: допустимая полная дата, как определено в [RFC 3339], с дополнительным уточнением, что Компонент года состоит из четырех или более цифр, представляющих число больше 0.

Ваш код должен быть изменен на:

<input type="date" value="2013-01-08">

Пример jsfiddle

person Lewis Norton    schedule 08.01.2013
comment
Ах спасибо за это! Я по умолчанию использую сегодняшнюю дату с php, и я не понимал, что моя проблема была просто в форматировании даты. Я делал ‹input type=date value=‹?php echo date('m/d/Y'); ?› name=date id=date title=Выбрать дату /› И множество других способов, но что сработало, так это ваше предложение value=‹?php echo date('Y-m-d'); ?› Гениально, спасибо! - person Mike Varosky; 26.02.2014
comment
Мне пришлось использовать «гггг-ММ-дд» для получения дополнительной информации: msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx - person Jimmy; 08.07.2014
comment
Это не работает на мобильном сафари. - person sheriffderek; 20.10.2016
comment
Это не работает на моем Ionic APP - person Anuj; 26.11.2016
comment
@шерифдерек . Это поддерживается не во всех браузерах, вам нужен jquery или подобное резервное решение. - person jonah; 03.05.2017

<input type="date" id="myDate" />

Затем в js :

_today: function () {
  var myDate = document.querySelector(myDate);
  var today = new Date();
  myDate.value = today.toISOString().substr(0, 10);
},
person Taufiq Ahmed    schedule 10.09.2016
comment
Спасибо! Самое простое решение. Так странно, что он не популярен. Есть ли подводные камни с ним? - person Anton Sutarmin; 10.05.2017
comment
@AntonSutarmin toISOString() возвращает дату в формате UTC, а не по местному времени браузера. Это может быть или не быть ловушкой. - person Austin Riba; 06.08.2019

Возможное решение:

document.getElementById("yourDatePicker").valueAsDate = new Date();

Использование Moment.js:

var today = moment().format('YYYY-MM-DD');
document.getElementById("datePicker").value = today;
person Umair Khalid    schedule 06.08.2016
comment
Присвоение valueAsDate новой Date() предполагает, что вам нужно время UTC. Если вы находитесь в любом другом часовом поясе, отличном от UTC (0), дата будет неправильной для части дня. - person ADJenks; 24.01.2019
comment
это пограничный случай @adjenks, вы не можете таким образом проголосовать против ответа даты. У каждого своя разница в зонах, и все знают, как добавить зону во времени. если вы этого не знаете. твоя вина, что не отвечает :) - person Umair Khalid; 24.01.2019
comment
См. австрия. wordpress.com/2012/07/09/ - person ADJenks; 24.01.2019

если вы используете PHP, вы можете установить такое значение

<input type="date" value="<?php echo date("Y-m-d");?>">

но помните, что он вернет дату сервера. например если ваш сервер в США и ваш клиент в Индонезии, это может отличаться на 1 день.

Но если вы хотите использовать клиент, вместо этого используйте решение javascript. Надеюсь, поможет.

person Toni Tegar Sahidi    schedule 09.09.2014

Вы можете использовать этот js-код:

<input type="date" id="dateDefault" />

JS

function setInputDate(_id){
    var _dat = document.querySelector(_id);
    var hoy = new Date(),
        d = hoy.getDate(),
        m = hoy.getMonth()+1, 
        y = hoy.getFullYear(),
        data;

    if(d < 10){
        d = "0"+d;
    };
    if(m < 10){
        m = "0"+m;
    };

    data = y+"-"+m+"-"+d;
    console.log(data);
    _dat.value = data;
};

setInputDate("#dateDefault");
person Corioquix    schedule 20.05.2015

Вы можете сделать что-то вроде этого:

<input type="date" value="<?php echo date("Y-m-d");?>" name="inicio">
person daronwolff    schedule 24.02.2015
comment
В моем случае это сработало, <input type="date" id="reminderDate" class="form-control form-control-user" id="last_name" placeholder="Enter Reminder Date" value='{{customer.reminder_date| date:"Y-m-d" }}'> в Django. - person hygull; 10.11.2019

Самый простой способ установить текущую дату.

<input name="date" type="date" value="<?php echo date('Y-m-j'); ?>" required>

person Awais Jameel    schedule 15.08.2017

// HTML-код

<input id="idFdate" type="date" />

// код javascript в основной функции загрузки

function loadFunction() {
    // body...
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; //January is 0!
    var yyyy = today.getFullYear();

    if(dd<10){
        dd='0'+dd;
    } 
    if(mm<10){
        mm='0'+mm;
    } 

    today = yyyy+'-'+mm+'-'+dd;                
    document.getElementById("idFdate").defaultValue =today+"";
}
person Sagar Khole    schedule 17.07.2018

JS-код:

function TodayDate(){
        let data= new Date();
        return data.getFullYear().toString()+'-' + (data.getMonth()+1).toString()+'-' + data.getDate().toString()
    }
    document.getElementById('today').innerHTML = '<input type="date" name="Data" value="'+TodayDate()+'" ><br>';

HTML-код:

<div id="today" > </div>

Немного грубовато, но работает!

person CharliePrm88    schedule 18.11.2018

вы можете показать дату, просто следуя правильному формату

<input type="date" value="2014-12-29">
person Kashif Latif    schedule 27.04.2015

Используйте Microsoft Visual Studio

Разделитель даты '-'

@{string dateValue = request.Date.ToString("yyyy'-'MM'-'ddTHH:mm:ss");}

‹ input type="datetime-local" class="form-control" name="date1" value="@dateValue" >

person Sergey Matsko    schedule 02.11.2017

Вот три оператора для трех разных дат в форме с тремя полями type=date.

$inv_date — текущая дата:

$inv_date = date("Y-m-d");

$inv_date_from — первый день текущего месяца:

$inv_date_from = date("Y") . "-" . date("m") . "-" . "01";

$inv_date_to - последний день месяца:

$inv_date_to = date("Y-m-t", strtotime(date("Y-m-t")));

Надеюсь, это поможет :)

person user9923405    schedule 11.06.2018