Как получить дату из 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 03

После вызова getDate в datepicker вы получите объект js Date (), который затем можно использовать для вызова getDate, getMonth, getFullYear и т. Д.
— CoolEsh

если мы напечатаем переменную jsDate, это даст нам что-то вроде этого Mon Aug 24 2020 00:00:00 GMT + 0530 (стандартное время Индии). Теперь мы можем применить метод getDate, getMonth, getFullYear к jsDate.
— Laveena

87

Вы можете получить дату с помощью функции getDate:

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

Значение возвращается как объект даты JavaScript.

Если вы хотите использовать это значение, когда пользователь выбирает дату, вы можете использовать событие 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.

См http://docs.jquery.com/UI/Datepicker для полной ссылки JQuery UI DatePicker.


лучшее решение, потому что не требуется глобальная переменная объекта даты
— Рашид

24

Попробуйте это, работает как шарм, показывает дату, которую вы выбрали. форма onsubmit попытайтесь получить это значение: -

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

Ссылка здесь



1

Иногда с этим много заморочек. Значение атрибута datapicker data - 28-06-2014, но datepicker показывает или сегодня, или ничего. Я так решил:

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

Я добавил к вводу data-value атрибута datapicker, потому что при вызове jQuery (this) .val () ИЛИ 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 или любой другой формат, то вы в порядке!
— Mohamed Nuur

0

Ответ NamingException сработал для меня. Кроме того, что я использовал

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

datepickerне сработало, но сработало dtpicker.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.