Настройка формата и значения в типе ввода = "дата"

Есть ли способ установить формат <input type="date"/>? если нет, то как я могу установить дату в этом поле, используя JavaScript в формате по умолчанию type="date". как я могу получить формат этой области?

EDIT: На самом деле, я хочу показать собственный механизм выбора даты на мобильном устройстве, поэтому я выбрал этот тип ввода. если есть какая-то альтернатива для этого поля, которая также будет хорошей.

Извините, если я сказал что-то глупое. Пожалуйста, помогите мне

Ответ 1

Формат - YYYY-MM-DD. Вы не можете его изменить.

$('#myinput').val('2013-12-31'); устанавливает значение

Ответ 2

new Date().toISOString().split('T')[0];

Ответ 3

попробуй это :)

function getDefaultDate(){

    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) ;

    return today;
}

$(document).ready(function(){ 
    $("#dateid").val( getDefaultDate()); 
});

Ответ 4

Легче, чем выше

var today = new Date().toISOString().substring(0,10); # "2013-12-31"

Ответ 5

Я бы попробовал jquery и jquery ui, чтобы добавить хороший элемент управления календарем, который делает все выбор и форматирование значений для вас. простого форматирования поля ввода недостаточно для требовательных пользователей сегодняшней сети :)

Посмотрите на эту ссылку

Ответ 6

Это уродливо, но оно работает. :/

var today = new Date().toLocaleString('en-GB').split(' ')[0].split('/').reverse().join('-');

Ответ 8

Я думаю, это может помочь

function myFormatDateFunction(date, format) {
     ...
}

jQuery('input[type="date"]')                                             
    .each(function(){                                                              
        Object.defineProperty(this,'value',{                                         
          get: function() {                                   
            return myFormatDateFunction(this.valueAsDate, 'dd.mm.yyyy');      
          },                                                                         
          configurable: true,                                                        
          enumerable : true                                                          
        });                                                                          
      });                                                                                

Ответ 9

function getDefaultDate(curDate){
var dt = new Date(curDate);'enter code here'
var date = dt.getDate();
var month = dt.getMonth();
var year = dt.getFullYear();
if (month.toString().length == 1) {
    month = "0" + month
}
if (date.toString().length == 1) {
    date = "0" + date
}
return year.toString() + "-" + month.toString() + "-" + date.toString();
}

В функции передайте строку даты.

Ответ 10

@cOnstructOr предоставил отличную идею, но оставил запятую на месте

var today = new Date().toLocaleString('en-GB').split(' ')[0].slice(0,-1).split('/').reverse().join('-');

исправляет это

Ответ 11

Канадский локаль, похоже, тоже поддерживает тот же формат:

new Date().toLocaleDateString('en-CA')

Ответ 12

Что вы хотите сделать, это получить значение из ввода и назначить его для нового экземпляра Date.

let date = document.getElementById('dateInput');

let formattedDate = new Date(date.value);

console.log(formattedDate);