【问题标题】:How to get day of the week from the selected date on datepicker using javascript如何使用javascript从日期选择器上的选定日期获取星期几
【发布时间】:2018-03-19 10:29:13
【问题描述】:

如何从日期选择器上的选定日期获取星期几,如果选定的日期是星期六或星期日,则显示 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>

【问题讨论】:

  • 你的代码有什么问题?我看到你已经检查了这个//
  • @MoshFeu 我的代码不起作用它不会隐藏 div openstatus 并显示 openstatus1

标签: javascript jquery html datepicker


【解决方案1】:

在 javascript 中,星期天的 GetDay() 是 0,而不是 7。

getDay() 方法根据当地时间返回指定日期的星期几,其中 0 表示星期日。

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

您还要检查一个值是否 == 6 == 7,这永远不会,因此您需要将其更改为 or

所以你的代码应该是:

$("#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();
    }
});

【讨论】:

  • 好的,我看到了您的解决方案,但是现在我的日期选择器字段变黑了,它没有显示任何日历。
  • 这个问题是关于获取星期几(而不是关于日期选择器)。您可能想提出一个新问题并提供一个有效的minimal reproducible example
  • 好的,但我的日期选择器字段在添加您建议的代码后发生了变化。无论如何谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多