Come ottenere la data da jQuery UI datepicker


85

Voglio ottenere la data da datepicker ogni volta che l'utente sceglie la data in jQuery UI datepicker e fa clic sul pulsante nel modulo.

beh, ho bisogno di ottenere il giorno, il mese e l'anno della data che scelgono. Come posso ottenere la data dal modulo jQuery UI?

Risposte:


130

Uso

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

È un modo per eseguire qualsiasi metodo sul tipo di dati Data? Voglio dire, getDate, getMonth, getFullYear ecc.?
— Ajeeb.KP

Dopo aver chiamato getDate su datepicker, otterrai l'oggetto js Date () che può essere usato per chiamare getDate, getMonth, getFullYear ecc
— CoolEsh

se stampiamo la variabile jsDate, allora ci darà qualcosa di simile a questo Mon Aug 24 2020 00:00:00 GMT + 0530 (India Standard Time) ora possiamo applicare il metodo getDate, getMonth, getFullYear su jsDate.
— Laveena

87

È possibile recuperare la data utilizzando la funzione getDate:

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

Il valore viene restituito come oggetto Date JavaScript.

Se vuoi usare questo valore quando l'utente seleziona una data, puoi usare l'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
   }
});

Il primo parametro è in questo caso la Data selezionata come Stringa. Utilizzare parseDate per convertirlo in un oggetto Data JS.

Vedi http://docs.jquery.com/UI/Datepicker per il riferimento completo a DatePicker dell'interfaccia utente jQuery.


soluzione migliore perché non è richiesta alcuna variabile globale dell'oggetto data
— Rashid

24

Prova questo, funziona come un fascino, dà la data che hai selezionato. onsubmit form cerca di ottenere questo valore: -

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

Riferimento qui



1

A volte molti problemi con esso. Nel valore dell'attributo dei dati del datapicker è 28-06-2014, ma datepicker è show o today o niente. L'ho deciso in questo modo:

<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)) ?>" />

Ho aggiunto all'input dell'attributo data-value datapicker, perché se chiami jQuery (this) .val () OR jQuery (this) .attr ('value') - non funziona nulla. Ho deciso di avviare in ciclo ogni datapicker e di prendere il suo valore dall'attributo 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 funziona bene =)


questo funzionerà solo se il formato della data è dmY .. se hai mdY o qualsiasi altro formato, sei hosed!
— Mohamed Nuur

0

La risposta di NamingException ha funzionato per me. Tranne che ho usato

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

datepickernon ha funzionato ma dtpickerha funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.