隐藏一个div如果在另一个Div内的日期大于一年



我有一个带有日期值的DIV类:

<div class="order-date">May 6, 2013</div>
<div class="order-date">January 10, 2018</div>
<div class="order-date">April 10, 2019</div>

等。

我想隐藏日期div旁边的另一个div:

<div class="download-link">Download proof">,

如果.Erder-Date Div的日期大于一年。

这两个divs都在包装师内部,因此可能需要在循环内?

<div class="account-ads-items">
    <div class="download-link">Download proof</div>
    <div class="order-date">May 6, 2013</div>
</div>
<div class="account-ads-items">
    <div class="download-link">Download proof</div>
    <div class="order-date">January 10, 2018/div>
</div>
<div class="account-ads-items">
    <div class="download-link">Download proof</div>
    <div class="order-date">April 10, 2019</div>
</div>

我试图找到新的日期((的解决方案;功能,但无法提出一个很好的解决方案。

下面的功能通过所有订单日期divs循环并读取其数据。将它们与今天-365进行比较,并隐藏下载链接div。

$('.order-date').each(function() {
  let date = new Date($(this).text());
  let d = new Date();
  let old = date < (d.setDate(d.getDate() - 365)) ;
  if (old == true) {
    $(this).closest('.account-ads-items').find('.download-link').hide();
  }
});

这是一个工作小提琴

以下应为您工作,

$('.order-date').each(function(){
    var oneDay = 24*60*60*1000;
    var date_string = $(this).data('date'); 
    var parts =date_string.split('-');
    var date1 = new Date(parts[0], parts[1] - 1, parts[2]);
    var today = new Date();
    var diffDays = Math.round(Math.abs((date1.getTime() - today.getTime())/(oneDay)));
    alert(diffDays);
    if( diffDays > 365 ){
        $(this).prev().hide();
    }
});

最新更新