Я хочу использовать средство выбора даты jquery ui, чтобы выбирать месяцы и годы. После поиска по сайтам я создал эту функцию:
$(".datepickerSchedule").datepicker({
showOn: "both",
changeMonth: true,
changeYear: true,
dateFormat: "yy-mm",
minDate: new Date(taskStartDate),
showButtonPanel: true,
onClose: function(dateText, inst) {
function isDonePressed(){
return $('#ui-datepicker-div').html().indexOf('ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all ui-state-hover') > -1;
}
if (isDonePressed()){
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year, month, 1));
}
}
}).focus(function(){
$(".ui-datepicker-calendar").hide();
});
Так что в фокусе я скрываю календарь, и только когда я нажимаю «Готово», первая выбранная дата месяца устанавливается на «Выбор даты».
После выбора месяца формат отображается правильно в виде мм-гг.
Но на моем экране я загружаю с датами тимелист из БД, и там у меня есть проблема, потому что формат даты не работает, и я получаю даты как гг-мм-дд. Объект модели, который я использую для установки ввода, имеет переменную Date (хотя это заставляет меня поверить, что у него есть проблема с синтаксическим анализом, потому что тип ввода - текст)
Также, когда я устанавливаю формат как «мм-гг», средство выбора даты не распознает дату, которая уже существует в поле, и открывается в текущем месяце, поэтому, например, если у меня есть 2017-11-01, средство выбора даты откроется до марта 2019 года. (это не происходит, если dateformat равен "гг-мм-дд", но происходит, если оно "мм-гг" или "гг-мм")
Последняя часть, как я могу исключить выбор месяца для года? Я знаю о конкретных датах, но могу ли я это сделать, если из чтения в день исключить полный месяц?