【问题标题】:Javascript filter between two string dates in Vue componentVue组件中两个字符串日期之间的Javascript过滤器
【发布时间】:2026-01-24 14:10:01
【问题描述】:

我正在一个 Laravel 应用程序中使用 Vue。除了最后一个之外,下面的一切都有效。我似乎无法找到适合这种情况的正确搜索词。如有重复请见谅。

这是我当前的代码:

return [...this.tableData].filter((salesorders) => {
     if (this.selectOption == '6') {
         return salesorders.order_status.match(this.status);
    }

                if (this.selectOption == '1') {
                    return salesorders.number.includes(this.searchInput);
                }

                if (this.selectOption == '2' && this.choice == 'is') {
                    var ship_date = moment(String(this.first_date)).format('MM-DD-YYYY');
                    return salesorders.requested_ship_date.match(ship_date);
                }

                if (this.selectOption == '2' && this.choice == 'is not') {
                    var ship_date = moment(String(this.first_date)).format('MM-DD-YYYY');
                    return !salesorders.requested_ship_date.match(ship_date);
                }

                if (this.selectOption == '2' && this.choice == 'is between') {
                    var ship_date1 = moment(String(this.first_date)).format('MM-DD-YYYY');
                    var ship_date2 = moment(String(this.end_date)).format('MM-DD-YYYY');

                    return salesorders.requested_ship_date >= ship_date1 && salesorders.requested_ship_date >= ship_date2;
                }

            });

【问题讨论】:

  • salesorders.requested_ship_date 只是一个字符串,而 ship_date1 和 ship_date2 是时刻对象,您需要将 salesorders.requested_ship_date 转换为时刻对象并使用日期比较器函数,例如 .isAfter.diff
  • 我忘了说 salesorders.requested_ship_date 是一个数组。这有什么不同吗?

标签: javascript laravel vue.js


【解决方案1】:

我刚刚想通了:

    return salesorders.requested_ship_date >= ship_date1 && salesorders.requested_ship_date <= ship_date2;

【讨论】: