#javascript #jquery #datepicker #frontend
#javascript #jquery #выбор даты #интерфейс
Вопрос:
С помощью приведенного ниже кода я пытаюсь выделить серым цветом 21/12/2020, потому что мы не отправляем до вторника (22/12/2020). Я не могу найти, что не так в приведенном ниже коде. Пожалуйста, укажите на ошибку в коде, из-за которой он может не работать.
<script>
jQuery(document).ready( function() {
jQuery(function() {
jQuery("#ship_date").datepicker( {
var minDate;
// get current date
var d = new Date();
var month = d.getMonth() 1;
var day = d.getDate();
var current_date = (month<10 ? '0' : '') month '/' (day<10 ? '0' : '') day d.getFullYear() '/';
if (current_date < new Date(11, 22, 2020) {
minDate = new Date( 11, 22, 2020 );
} else {
minDate = 1;
}
maxDate: ' 2M',
beforeShowDay: jQuery.datepicker.noWeekends
} );
});
});
</script>
Ответ №1:
ОБНОВЛЕН ответ в соответствии с запросом от PKTG:
<script>
$( function() {
var cuttoffdate = new Date(2020,11, 22);
$( "#ship_date" ).datepicker(
{
maxDate: ' 2M',
beforeShowDay: function (date) {
show = true;
if (date.getDay() === 0 || date.getDay() === 6) { show = false; }
if(date<cuttoffdate) { show=false;};
var display = [show, '', (show) ? '' : 'Not available'];
return display;
}
}
);
} );
</script>
Комментарии:
1. глядя на мой код, это можно было бы сделать немного лучше, добавив разрыв; в цикле, когда он находит дату, также не проверяя праздники, если это выходные (в моем случае я хочу) — может быть, используя hashset или что-то еще для определения даты ??, но этопоказать «принцип» того, как это сделать..
2. Спасибо, Антон. Не могли бы вы сказать, можно ли использовать оператор сравнения с датами, как я здесь, если
(current_date < exlude_date)
?3. вы должны помнить, что даты — это очень сложная вещь, особенно в браузерах и потому, что мы находимся по всему миру (что-то, что вы должны учитывать, это разные часовые пояса, такие вещи, как переход на летнее время и т. Д.) .. так что, сказав это, я использовал «moment.js » для всех / большинства моих дат на веб-сайтах и дляработайте с ними правильно — преобразуйте все даты в UTC, а затем работайте с ними .. и да, тогда можно будет использовать операции сравнения.. смотрите : momentjs.com
4. пример .. у кого-то в Новой Зеландии будет 1 января РАНЬШЕ, чем у кого-то в Англии… а потом в Англии иногда переходят на летнее время, что меняет ситуацию на час..
5. Да, я понимаю. Я смотрю, можно ли заставить мой код работать. Пожалуйста, посмотрите, есть ли способ.