【问题标题】:Custom filter between two dates两个日期之间的自定义过滤器
【发布时间】:2017-09-25 05:15:50
【问题描述】:

我正在尝试过滤两个日期之间的数据。我试图修复它,但我无法完成它。谁能帮帮我?

我的html:

<input type="date" ng-model="from_date">
<input type="date" ng-model="to_date">

我的重复:

<tr ng-repeat="item in outlets | dateRange:from_date:to_date">
    <td>{{ item.offerID }}</td>
    <td>{{ parseDate(item.startDate) | date:'yyyy-MM-dd' }}</td>

我的脚本:

 app.filter('dateRange', function () {
    return function (items, fromDate, toDate) {
        var filtered = [];
        console.log(fromDate, toDate);
        var from_date = Date.parse(fromDate);
        var to_date = Date.parse(toDate);
        angular.forEach(items, function (item) {
            if (item.startDate > from_date && item.startDate < to_date) {
                filtered.push(item);
            }
        });
        return filtered;
    };
});

来自服务器的杰森数据:

{
"offerID": "1"
, "merchant": "Rifa Ladies Salon"
, "outelt": "Rifa Ladies Salon Business Bay"
, "offer": "Rifa Ladies Salon- Offer 1"
, "offerStatus": "LIVE"
, "startDate": "2016-07-12"}

【问题讨论】:

  • 亲爱的 Fetra,我已经从服务器更新了一个 json 数据。我希望现在你能帮助我。
  • 我没有 Date.parse() 函数。我需要一个单独的功能吗??

标签: javascript jquery css angularjs wordpress


【解决方案1】:

您正在通过 Date.parse 进行比较,但在您的过滤器比较中:

if (item.startDate > from_date && item.startDate < to_date) {

item.startDate 是 'YYYY-MM-DD' 格式,from_dateto_date 是 时间戳 by Date.parse(),

所以你只需要选择是否使用 Date.parse() ?这是你的解决方法:

if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
}

完整的过滤器:

app.filter('dateRange', function () {
    return function (items, fromDate, toDate) {
        var filtered = [];
        var from_date = Date.parse(fromDate);
        var to_date = Date.parse(toDate);
        if (!to_date || !from_date) {
            return items;
        }
        angular.forEach(items, function (item) {
            if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
                filtered.push(item);
            }
        });
        return filtered;
    };
});

工作小提琴:http://plnkr.co/edit/SPnN4wptw1Sltsp1lawD?p=preview

【讨论】:

  • 真的我不知道它仍然不起作用。每当我从 ng-repeat 中删除我的 dateRange 过滤器时,我都能够从服务器获取数据。但如果我包含 dateRange,我会在控制台上收到语法错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多