【问题标题】:How to apply a range date filter on angular js year or month?如何在 Angular js 年或月上应用范围日期过滤器?
【发布时间】:2023-03-22 21:32:01
【问题描述】:

我是 Angular JS 的新手。我的日期格式类似于d MMM y.,但是我有两个字段,一个是从其中调用的,另一个是应该根据年份范围或月份范围将date 过滤为范围的字段。 她是我对数据进行排序的方式。

   <div class="transition-item col-md-12" ng-repeat="trn in Transactions">
<div  id="{{'containerOf'+trn.TrnID}}" class="expand-trigger" 
   ng-click="expandTrns('containerOf'+trn.TrnID,'contentOf'+trn.TrnID)">
   <span class="glyphicon glyphicon-plus"></span> 
   <span class="glyphicon glyphicon-minus"></span>
</div>
<div class="col-md-7 transition-desc"><span ng-class="{'glyphicon glyphicon-arrow-up green-clr': trn.TrnType , 'glyphicon glyphicon-arrow-down red-clr': !trn.TrnType}"></span> {{trn.TrnSubject}}</div>
<div class="col-md-2 transition-amount">{{trn.TrnAmount | currency}}</div>
<div class="col-md-2 transition-date"><small>{{trn.TrnDate | date:"EEE, d MMM y"}}</small></div>

她是形式

<div class="left form-inline col-md-8">
                 <div class="col-md-5">
                  from :
                  <input class="form-control" type="text" ng-model="one">
                 </div>

                 <div class="col-md-5">
                   to :
                  <input class="form-control" type="number" ng-model="two">
                 </div>
                </div>
              </div>
              <div class="sorting">
                <div class="left ">
                Sort :
              </div>
              <div class="btn-toolbar">
                <div class="btn-group">
                  <a class="btn btn-primary" href="#fakelink"><span class="glyphicon glyphicon-arrow-up"></span></a>
                  <a class="btn btn-primary" href="#fakelink"><span class="glyphicon glyphicon-arrow-down"></span></a>
                </div>
              </div> <!-- /toolbar -->
              </div>
            </div>              

【问题讨论】:

  • 您的代码似乎不完整,我找不到您提到的fromto 字段。即使您说这就是我对数据进行排序的方式,我在代码中看不到任何排序逻辑。请分享您的尝试,以便我们提供帮助。
  • 我将编辑帖子感谢您的重播。

标签: javascript jquery angularjs


【解决方案1】:

编辑后您的问题仍然不清楚,所以我会尝试猜测您想使用输入月份范围过滤集合的 Date 属性。以下是使用filter 的方法:

<div class="transition-item col-md-12" ng-repeat="trn in Transactions | filter:inMonthRange">

inMonthRange 是在范围上定义的自定义过滤函数,用于检查日期的月份。

$scope.inMonthRange = function(t){
  return t.dateField.getMonth() + 1 >= $scope.from && t.dateField.getMonth() +1 <= $scope.to;
}

您可以参考此Plunker 以获取工作示例。按年份过滤类似。

【讨论】:

  • 谢谢你,我和你一样想通了。但是当我打电话给 getmonth 时,她的格式是日期 2015-06-01-T00:00:00
  • @user2918388 你怎么称呼它的?
  • alert(data[1].TrnDate.getMonth());
  • 谢谢你让我通过 alert(new Date(data[1].TrnDate).getMonth());
【解决方案2】:

试试这个:

Moment range JS 真的好用。

Click HERE to check it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2017-12-13
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    相关资源
    最近更新 更多