Как получить дату из jQuery UI datepicker

85

Я хочу получать дату из datepicker всякий раз, когда пользователь выбирает дату в jQuery UI datepicker и нажимает кнопку в форме.

ну, мне нужно получить день, месяц и год выбранной ими даты. Как я могу получить форму даты jQuery UI?

TJ
источник

Ответы:

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();
}
CoolEsh
источник
Это способ запустить любой метод с типом данных 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();

Ссылка здесь

NameNotFoundException
источник
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));
    });

и он отлично работает =)

realmag777
источник
это будет работать только в том случае, если ваш формат даты - dmY .. если у вас есть mdY или любой другой формат, то вы в порядке!
Mohamed Nuur
0

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

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

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

Evobe
источник