Як отримати дату з jQuery UI datepicker


85

Я хочу отримати дату з datepicker щоразу, коли користувач вибирає дату в jQuery UI datepicker та натискає кнопку на формі.

ну мені потрібно отримати день, місяць і рік дати, яку вони обрали. Як отримати форму дати JQuery UI?

Відповіді:


130

Використовуйте

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

Це спосіб запустити будь-який метод на типі даних Date? Я маю на увазі, getDate, getMonth, getFullYear тощо?
Ajeeb.KP

Після виклику getDate на datepicker ви отримаєте об'єкт js Date (), який потім можна буде використовувати для виклику getDate, getMonth, getFullYear тощо
CoolEsh

якщо ми надрукуємо змінну jsDate, то це дасть нам щось на зразок цього, пн 24 серпня 2020 00:00:00 GMT + 0530 (стандартний час Індії), тепер ми можемо застосувати метод getDate, getMonth, getFullYear до jsDate.
Лавена

87

Ви можете отримати дату за допомогою функції getDate:

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

Значення повертається як об'єкт JavaScript Date.

Якщо ви хочете використовувати це значення, коли користувач вибирає дату, ви можете використовувати подію onSelect:

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

Першим параметром у цьому випадку є вибрана дата як рядок. Використовуйте parseDate, щоб перетворити його на об'єкт дати JS.

Повне посилання на jQuery UI DatePicker див. На веб- сайті http://docs.jquery.com/UI/Datepicker .


найкраще рішення, оскільки не потрібна глобальна змінна об’єкта дати
Рашид

24

Спробуйте це, працює як шарм, дає дату, яку ви вибрали. onsubmit form спробуйте отримати це значення: -

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

Довідка тут



1

Іноді з цим багато клопоту. В атрибуті значення datapicker data 28-06-2014, але datepicker show або сьогодні або нічого. Я вирішив це таким чином:

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

Я додав до вводу атрибута datapicker дані-значення, тому що якщо викликати jQuery (this) .val () OR jQuery (this) .attr ('value') - нічого не працює. Я вирішив ініціювати цикл кожного вибору даних і взяти його значення з атрибута 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));
    });

і це чудово працює =)


це спрацює лише у тому випадку, якщо ваш формат дати dmY .. якщо у вас є mdY або будь-який інший формат, вам потрібно!
Мохамед Нуур

0

Відповідь NamingException у мене спрацював. За винятком того, що я використовував

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

datepickerне працював, але dtpickerробив.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.