Как установить значение даты по умолчанию для типа ввода сегодня? - PullRequest
351 голосов
/ 08 августа 2011

Типы ввода HTML5 великолепны, новый встроенный инструмент выбора даты в Opera очень прост, и Chrome, по крайней мере, поддерживает новый тип ввода с помощью вращающегося колеса.

Но есть ли способ установить значение по умолчанию для поля даты на сегодняшнюю дату? С помощью Opera я могу выбрать «Сегодня» из палитры дат, и как только я нажимаю на любую из кнопок шагов в Chrome, она увеличивается / уменьшается по сравнению с сегодняшней датой.

Я не стесняюсь кодировать решение этой незначительной проблемы, но мне кажется глупым, что оба браузера полностью осведомлены о текущей дате, но не будут автоматически просто вставлять ее (по крайней мере, в качестве заполнителя) ).

Ответы [ 29 ]

6 голосов
/ 02 декабря 2012

Очень просто, просто используйте серверные языки, такие как PHP, ASP, JAVA или даже вы можете использовать javascript.

Вот решение

<?php
  $timezone = "Asia/Colombo";
  date_default_timezone_set($timezone);
  $today = date("Y-m-d");
?>
<html>
  <body>
    <input type="date" value="<?php echo $today; ?>">
  </body>
</html>
4 голосов
/ 31 августа 2018
<input id="datePicker" type="date" />

$(document).ready( function() {
    var now = new Date();
 
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);

    var today = now.getFullYear()+"-"+(month)+"-"+(day) ;


   $('#datePicker').val(today);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="datePicker" type="date" />
3 голосов
/ 05 марта 2014

если вам нужно заполнить введенную дату / время, вы можете использовать это:

<input type="datetime-local" name="datetime" 
       value="<?php echo date('Y-m-d').'T'.date('H:i'); ?>" />
3 голосов
/ 28 декабря 2016

Для NodeJS (Express с шаблонами SWIG):

<input type="date" id="aDate" name="aDate" class="form-control" value="{{ Date.now() | date("Y-m-d") }}" />
3 голосов
/ 24 января 2019

В простейших решениях, как представляется, не учитывается время UTC, в том числе с высоким рейтингом. Ниже приведена упрощенная версия ES6, не являющаяся jQuery, пары существующих ответов:

const today = (function() {
    const now = new Date();
    const month = (now.getMonth() + 1).toString().padStart(2, '0');
    const day = now.getDate().toString().padStart(2, '0');
    return `${now.getFullYear()}-${month}-${day}`;
})();
console.log(today); // as of posting this answer: 2019-01-24
3 голосов
/ 28 мая 2014

Это то, что я сделал в своем коде, я только что протестировал, и он работал нормально, input type = "date" не поддерживает автоматическую настройку curdate, поэтому я использовал способ PHP для простого преодоления этого ограничения. код как этот.

<html>
<head></head>
    <body>
        <form ...>
            <?php
                echo "<label for='submission_date'>Data de submissão</label>";
                echo "<input type='date' name='submission_date' min='2012-01-01' value='" . date('Y-m-d') . "' required/>";
            ?>
        </form>
    </body>
</html>

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

1 голос
/ 04 апреля 2019

Javascript

document.getElementById('date-field').value = new Date().toISOString().slice(0, 10);

Jquery

$('#date-field').val(new Date().toISOString().slice(0, 10));

Другой вариант

Если вы хотите настроить дату, месяц и год, просто сделайте сумму или саб по вашему желанию ? Для месяца начинается форма 0, поэтому необходимо суммировать 1 с месяцем.

function today() {
        let d = new Date();
        let currDate = d.getDate();
        let currMonth = d.getMonth()+1;
        let currYear = d.getFullYear();
        return currYear + "-" + ((currMonth<10) ? '0'+currMonth : currMonth )+ "-" + ((currDate<10) ? '0'+currDate : currDate );
    }

Применение функции сегодня

document.getElementById('date-field').value = today();

$('#date-field').val(today());
1 голос
/ 08 февраля 2019

Это то, что вам действительно нужно делать на стороне сервера, поскольку формат локального времени каждого пользователя отличается, не говоря уже о том, что каждый браузер ведет себя по-разному.

Html Значение даты должно быть в следующем формате: гггг-мм-дд в противном случае значение не будет отображаться.

ASP CLASSIC, ИЛИ VBSCRIPT:

current_year = DatePart("yyyy",date) 
current_month = DatePart("m",date) 
current_day = DatePart("d",date) 

IF current_month < 10 THEN
current_month = "0"&current_month
END IF
IF current_day < 10 THEN
current_day = "0"&current_day
END IF

get_date = current_year&"-"&current_month&"-"&current_day
Response.Write get_date

Вывод сегодняшней даты: 2019-02-08

Тогда в вашем html: <input type="date" value="<% =get_date %>"

PHP

просто используйте это: <input type="date" value="<?php echo date("Y-m-d"); ?>">

1 голос
/ 10 сентября 2016
new Date().getFullYear()+"-"+ ((parseInt(new Date().getMonth())+1+100)+"").substring(1)
1 голос
/ 25 апреля 2016

по Javascript:

var today = new Date();

document.getElementById("theDate").value = today.getFullYear() + '-' + ('0' + (today.getMonth() + 1)).slice(-2) + '-' + ('0' + today.getDate()).slice(-2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...