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.