【问题标题】:How to get the date difference in outside of the loop?如何在循环外获取日期差异?
【发布时间】:2018-01-10 11:21:48
【问题描述】:

我在不同的 div 中有多个开始日期。如果当前日期的 div 日期超过 365 天,我需要隐藏支付按钮。 Orelse 我需要展示。我想在 angularjs 中做到这一点。

1) 如果第一个 div 日期差异小于 365 天,我需要显示付款按钮。否则我需要隐藏。

2) 与所有 div 相同。我有超过 50 个 div。

{
date:[{
  date:"01/01/2016"
}
{
  date:"01/01/2016"
}
{
  date:"01/01/2016"
}
{
  date:"01/01/2016"
}
{
  date:"01/01/2016"
}
{
  date:"01/01/2016"
}

]
}
   var date2 = new Date();
   var timeDiff = Math.abs(date2.getTime() - date1.getTime());
   var diffdate = Math.ceil(timeDiff / (1000 * 3600 * 24));
   
   for (var i=0;i<data.length;i++){
    var date1 = data[i].date;
    var date2 = new Date();
   var timeDiff = Math.abs(date2.getTime() - date1.getTime());
   var diffdate = Math.ceil(timeDiff / (1000 * 3600 * 24));
   $scope.differnece = diffdate.map(Number) 
    if($scope.differnece > 365){
     $("$pay").hide();
   }else{
     $("#pay").show();

  }
   }
   

&lt;button id="pay"&gt;Pay&lt;/button&gt;

在循环中,我得到了所有两个日期之间的差异。但是请帮助我如何根据每个 div 差异日期编写条件。

【问题讨论】:

    标签: javascript jquery html css angularjs


    【解决方案1】:

    在你的控制器中,

    先初始化

     $scope.showButton = true;   //To show the button initially. Else set it to  false.
    

    已编辑:

    由于您使用多个部门,

     if($scope.differnece > 365){
       if($scope.showButton) {
           $scope.showButton = false;
       }
     }
    

    在你的模板中,使用 ng-show 指令。

      <button id="pay" ng-show="showButton">Pay</button>
    

    当 showButton 的值为 true 时,按钮会显示,当它设置为 false 时,按钮会隐藏。

    【讨论】:

    • 对于一个 div 就可以了。但是我有50多个。所以我需要写循环。如果我写下你的条件,它将只取最后一个值。
    • 我已将答案编辑为 if($scope.differnece > 365){ if($scope.showButton) { $scope.showButton = false; } }
    猜你喜欢
    • 2023-01-15
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多