【问题标题】:How to get not-selected dates of a month from bootstrap datepicker如何从引导日期选择器中获取一个月的未选择日期
【发布时间】:2018-07-09 09:20:16
【问题描述】:

我想获取所有没有从bootstrap datepicker中选择的日期

我会选择多个日期如下

using  :multidate: true

现在我想获得该月未选择的日期。

是否有可能获得未选择的月份日期?

编辑

$(document).ready(function(){

        $ ("#jdate").datepicker({ format: 'dd/mm/yyyy',  orientation: 'bottom' ,  multidate: true}).datepicker('setDate', new Date());


    });     

使用上面的代码,我会得到选定的日期。但我不想选择日期。 请帮帮我。谢谢!。

【问题讨论】:

  • 欢迎来到 StackOverflow。请添加minimal, complete, and verifiable example,以便我们为您提供更多帮助。
  • 通过使用 datepicker 我们可以选择多个日期,如何获取所选月份的未选择日期,可以举例说明吗?
  • 请注意,SO 不是代码编写网站。如果您自己尝试过某些东西,我们会为您提供帮助。请分享您到目前为止尝试过的内容。
  • 好吧对不起@breakpoint。我已经给出了我的代码,请检查一下。
  • 我认为没有直接的方法可以做到这一点,但您可以做的是,获取当月的总天数,然后找到与您选择的日期值的天数差。仅当所选日期在同一月份时才有效。$('.date').on('changeDate', function(e) { var currMonth = new Date(e.date).getMonth() + 1; var currYear = new Date(e.date).getFullYear(); var totalDays = new Date(currYear, currMonth, 0).getDate(); });

标签: jquery bootstrap-4 bootstrap-datepicker


【解决方案1】:

好吧,在 bootstrap datepicker 的整个文档中,没有提及任何可以帮助您实现所需的方法。

因此,作为一种解决方法,这是我可以想到的(虽然不是这个的粉丝!):

$('#jdate').datepicker({
    multidate: true,
    format: 'dd-mm-yyyy',
    onSelect: function () {
        var allDatesHtml = $('.datepicker-days .day');
        var nonSelectedDays = _.compact(_.map(allDatesHtml, function(ele) {
            if (!ele.classList.contains('new') && !ele.classList.contains('old') && !ele.classList.contains('active')) {
                return ele.textContent;
            }
        }));

        console.log(nonSelectedDays);  // gives you all the non selected days of the current month
    }
});

请注意:这里使用的compactmapUnderscore.js函数,可以帮助你简化代码。

如有任何问题/疑问,请随时提出。

【讨论】:

  • 谢谢@breakpoint。是选定的月份而不是选定的日期还是所有日期?。
  • @bharath - 此代码仅适用于当前月份的未选择日期。我已经更新了答案以获得更多说明。
  • 它不会在控制台中打印任何内容
  • @bharath 请加入this chat,以便我们在那里讨论更多内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 2014-01-24
相关资源
最近更新 更多