web-dev-qa-db-fra.com

Comment obtenir la date de jQuery UI datepicker

Je souhaite obtenir la date de datepicker chaque fois que l'utilisateur choisit la date dans jQuery UI datepicker et clique sur le bouton du formulaire.

il me faut bien connaître le jour, le mois et l’année de la date choisie. Comment puis-je obtenir la date du formulaire jQuery UI?

78
user605334

Utilisation

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

Vous pouvez récupérer la date en utilisant la fonction getDate:

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

La valeur est renvoyée sous la forme d'un objet Date JavaScript.

Si vous souhaitez utiliser cette valeur lorsque l'utilisateur sélectionne une date, vous pouvez utiliser l'événement onSelect:

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

Le premier paramètre est dans ce cas la Date sélectionnée sous forme de chaîne. Utilisez parseDate pour le convertir en objet Date JS.

Voir http://docs.jquery.com/UI/Datepicker pour la référence complète DatePicker de l'interface utilisateur jQuery.

81
Vivek

Essayez ceci fonctionne comme un charme, donne la date que vous avez choisie

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

Référence ici

18

le lien vers getdate: http://docs.jquery.com/UI/Datepicker#method-getDate

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

Parfois, beaucoup de problèmes avec elle. Dans l'attribut, la valeur de datapicker est 28-06-2014, mais datepicker est show ou aujourd'hui ou rien. Je l'ai décidé d'une telle manière:

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

J'ai ajouté à l'entrée d'attribut datapicker data-value, car si call jQuery (this) .val () OR jQuery (this) .attr ('value') - rien ne fonctionne . J'ai décidé init in cycle chaque datapicker et prend sa valeur d'attribut 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));
    });

et ça marche bien =)

1
realmag777