Como obter a data do jQuery UI datepicker

86

Quero obter a data do datepicker sempre que o usuário escolher a data no jQuery UI datepicker e clicar no botão no formulário.

bem, eu preciso pegar o dia, mês e ano da data que eles escolheram. Como posso obter o formulário de data do jQuery UI?

TJ
fonte

Respostas:

131

Usar

var jsDate = $('#your_datepicker_id').datepicker('getDate');
if (jsDate !== null) { // if any date selected in datepicker
    jsDate instanceof Date; // -> true
    jsDate.getDate();
    jsDate.getMonth();
    jsDate.getFullYear();
}
CoolEsh
fonte
Essa é uma maneira de executar qualquer método no tipo de dados Date? Quer dizer, getDate, getMonth, getFullYear etc.?
Ajeeb.KP
Depois de chamar getDate no datepicker, você obterá o objeto js Date () que pode ser usado para chamar getDate, getMonth, getFullYear etc
CoolEsh
se imprimirmos a variável jsDate, isso nos dará algo como Mon Aug 24 2020 00:00:00 GMT + 0530 (Horário padrão da Índia) agora podemos aplicar o método getDate, getMonth, getFullYear em jsDate.
Laveena
86

Você pode recuperar a data usando a função getDate:

$("#datepicker").datepicker( 'getDate' );

O valor é retornado como um objeto JavaScript Date.

Se você quiser usar este valor quando o usuário selecionar uma data, você pode usar o evento onSelect:

$("#datepicker").datepicker({
   onSelect: function(dateText, inst) { 
      var dateAsString = dateText; //the first parameter of this function
      var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method
   }
});

O primeiro parâmetro é, neste caso, a Data selecionada como String. Use parseDate para convertê-lo em um objeto JS Date.

Consulte http://docs.jquery.com/UI/Datepicker para obter a referência completa do jQuery UI DatePicker.

Vivek
fonte
melhor solução porque nenhuma variável global de objeto de data é necessária
Rashid
24

Experimente isso, funciona como charme, dá a data que você selecionou. onsubmit form tente obter este valor: -

var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();

Referência aqui

NameNotFoundException
fonte
1

Às vezes, muitos problemas com isso. No atributo, o valor dos dados do datapicker é 28-06-2014, mas o datepicker é mostrado ou hoje ou nada. Eu decidi desta forma:

<input type="text" class="form-control datepicker" data-value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" />

Eu adicionei à entrada do datapicker atributo data-value, porque se chamar jQuery (this) .val () OR jQuery (this) .attr ('value') - nada funciona. Eu decidi o init no ciclo de cada datapicker e peguei seu valor do atributo data-value:

 $("form .datepicker").each(function() {
        var time = jQuery(this).data('value');
        time = time.split('-');
        $(this).datepicker('setDate', new Date(time[2], time[1], time[0], 0, 0, 0));
    });

e funciona bem =)

realmag777
fonte
isto só funcionará se o seu formato de data for dmY .. se você tiver o mdY ou qualquer outro formato, você está hospedado!
Mohamed Nuur
0

A resposta de NamingException funcionou para mim. Exceto eu usei

var date = $("#date").dtpicker({ dateFormat: 'dd,MM,yyyy' }).val()

datepickernão funcionou, mas dtpickerfuncionou.

evocar
fonte