【问题标题】:JavaScript - Daterangepicker, isInvalidDate method enabling only one dayJavaScript - Daterangepicker,isInvalidDate 方法仅启用一天
【发布时间】:2019-05-14 14:25:06
【问题描述】:

我将 daterangepicker (daterangepicker.com) 添加到我的项目中,并且我想禁用/启用某些特定日期。有一种方法可以做到这一点-> isInvalidDate 所以我在选项中做了类似的事情:

        isInvalidDate: (date) => {
        for (let i = 0; i < this.periodsArray.length; i++) {
            if (date == Date.parse(this.periodsArray[i])){
                return false;
            } else {
                return true;
            }
        }
    }

periodsArray 包含以这种格式表示日期的字符串 ["YYYYMMDD",...] 或 "YYYYMM"

if (date.format('YYYYMMDD') == this.periodsArray[i] || date.format('YYYYMM') == this.periodsArray[i])

而这一项只启用了一个 periodArray[0] 日期。有人可以帮我吗?

【问题讨论】:

  • 你正在比较to periodArray中的所有日期只有一个日期,所以我想它只会启用那一天。
  • 你说只有一次约会是什么意思?有'for'循环来比较数组中的每个字符串日期
  • true,但它们都与一个日期进行比较,即输入到 isInvalidDate 函数中的那个日期。
  • 我想改变什么来正确地做到这一点?什么时候为假,然后使用“继续”进行另一个迭代?
  • 是的,因为每次迭代都会返回。尝试仅在最后返回或按照您所说的使用 continue。

标签: javascript angular string typescript datepicker


【解决方案1】:

您在每次迭代时都返回,因此它将始终返回数组中第一个元素的答案,而不是比较所有并在最后返回答案,尝试类似的方法:

isInvalidDate: (date) => {
    for (let i = 0; i < this.periodsArray.length; i++) {
        if(date == Date.parse(this.periodsArray[i])){
            return false;
        }
    }
    return true
}

这将在第一次匹配时返回 false。说日期不是无效 = 有效,如果没有匹配项说明日期无效,则为 true。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2020-01-18
    • 1970-01-01
    • 2021-06-13
    相关资源
    最近更新 更多