Как получить день недели из выбранной даты на datepicker с помощью javascript

Как мне получить день недели из выбранной даты на datepicker, и если выбранная дата - суббота или воскресенье, показать openstatus1, иначе показать openstatus.

JavaScript

$("#datepicker").datepicker({ 
        autoclose: true, 
        todayHighlight: true
}).on('changeDate', function(e) {
    if (e.date && e.date.GetDay()==6 && e.date.GetDay()==7) {
        $('.openstatus').toggle();
    } else {
        $('.openstatus1').toggle();
    }
});

Моя форма

<div id = "datepicker" class = "input-group" data-date-format = "mm-dd-yyyy">
<input class = "form-control" name = "Date" type = "text" readonly />
<span class = "input-group-addon"><i class = "glyphicon glyphicon-calendar"></i></span>
</div>
<div class = "openstatus">

    <select name = "ResTime" class = " selectpicker">
        <option  selected = "selected" value = "select time">Select Time</option>
        <option value = "10:30am">10:30 am</option>
        <option value = "11:00am">11:00 am</option>
        <option value = "11:30am">11:30 am</option>
        <option value = "12:00pm">12:00 pm</option>
        <option value = "12:30pm">12:30 pm</option>
        <option value = "1:00pm">1:00 pm</option>
        <option value = "1:30pm">1:30 pm</option>
        <option value = "2:00pm">2:00 pm</option>
        <option value = "2:30pm">2:30 pm</option>
        <option value = "3:00pm">3:00 pm</option>
        <option value = "3:30pm">3:30 pm</option>
        <option value = "4:00pm">4:00 pm</option>
        <option value = "4:30pm">4:30 pm</option>
        <option value = "5:00pm">5:00 pm</option>  
    </select>

</div>
<div class = "openstatus1">

    <select name = "ResTime" class = "selectpicker">
        <option  selected = "selected" value = "select time">Select Time</option>
        <option value = "8:00am">8:00 am</option>
        <option value = "8:30am">8:30 am</option>
        <option value = "9:00am">9:00 am</option>
        <option value = "9:30am">9:30 am</option>
        <option value = "10:00am">10:00 am</option>
        <option value = "10:30am">10:30 am</option>
        <option value = "11:00am">11:00 am</option>
        <option value = "11:30am">11:30 am</option>
        <option value = "12:00pm">12:00 pm</option>
        <option value = "12:30pm">12:30 pm</option>   
    </select>

</div>

В чем проблема с вашим кодом? Я вижу, что вы это уже проверяли //

Mosh Feu 19.03.2018 11:33

@MoshFeu мой код не работает, он не скрывает div openstatus и показывает openstatus1

Muziwenhlanhla Dlamini 19.03.2018 11:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
398
1

Ответы 1

В javascript GetDay () для воскресенья - 0, а не 7.

The getDay() method returns the day of the week for the specified date according to local time, where 0 represents Sunday.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay

Вы также проверяете, есть ли значение == 6 а также == 7, чего никогда не будет, поэтому вам нужно изменить на или же

Итак, ваш код должен быть:

$("#datepicker").datepicker({ 
    autoclose: true, 
    todayHighlight: true
}).on('changeDate', function(e) {
    if (e.date && (e.date.GetDay() == 6 || e.date.GetDay() == 0)) {
        $('.openstatus').toggle();
    } else {
        $('.openstatus1').toggle();
    }
});

Следующая проблема, которую вы обнаружите, заключается в том, что .toggle() будет переключать только выбранные вами элементы. Вы можете использовать переключатель с логическим флагом, но иногда яснее быть явным, поэтому покажите / скройте то, что вы хотите, давая:

$("#datepicker").datepicker({ 
    autoclose: true, 
    todayHighlight: true
}).on('changeDate', function(e) {
    if (e.date && (e.date.GetDay() == 6 || e.date.GetDay() == 0)) {

        // show hide .openstatus/.openstatus1 as required (ie might need to swap these two)
        $('.openstatus').show();
        $('.openstatus1').hide();
    }
    else {
        $('.openstatus').hide();
        $('.openstatus1').show();
    }
});

хорошо, я вижу ваше решение, но теперь мое поле datepicker становится черным, в нем не отображается календарь.

Muziwenhlanhla Dlamini 19.03.2018 11:48

Этот вопрос касался получения дня недели (и не совсем о дате). Вы можете открыть новый вопрос и указать рабочий минимальный воспроизводимый пример.

freedomn-m 19.03.2018 11:50

Хорошо, но мое поле выбора даты изменилось после добавления предложенного вами кода. Спасибо, в любом случае.

Muziwenhlanhla Dlamini 19.03.2018 12:02

Другие вопросы по теме