Як отримати дату з 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.