98 votes

Comment obtenir la date de l'indicateur de date de jQuery UI ?

Je veux obtenir la date du sélecteur de date lorsque l'utilisateur choisit la date dans le sélecteur de date de jQuery UI et clique sur le bouton du formulaire.

J'ai besoin d'obtenir le jour, le mois et l'année de la date qu'ils choisissent. Comment puis-je obtenir la date à partir de jQuery UI ?

140voto

CoolEsh Points 1827

Utilisez

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

96voto

Vivek Points 4704

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 JavaScript Date.

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 en tant que chaîne. Utilisez parseDate pour la convertir en un objet Date JS.

Véase http://docs.jquery.com/UI/Datepicker pour la référence complète de jQuery UI DatePicker.

27voto

vicky Points 68

Essayez ceci, cela fonctionne comme un charme, donne la date que vous avez sélectionnée. sur le formulaire d'envoi, essayez d'obtenir cette valeur.

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

Référence ici

7voto

alexl Points 4535

Le lien vers getdate : https://api.jqueryui.com/datepicker/#method-getDate

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

1voto

realmag777 Points 636

Il y a parfois beaucoup de problèmes avec ça. Dans la valeur de l'attribut du sélecteur de date, la donnée est 28-06-2014, mais le sélecteur de date affiche 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 du sélecteur de données l'attribut data-value, parce que si l'on appelle jQuery(this).val() OU jQuery(this).attr('value') - rien ne fonctionne. J'ai décidé d'initier en cycle chaque datapicker et de prendre sa valeur dans l'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 cela fonctionne bien =)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X