如何收集 php 中特定日期值的日期?

How to collect dates with respect to specific date value in php?

我想向客户显示有关本月到期金额的消息,以便他可以续订。 续费时间从到期金额的最后一个月开始计算,即:

$renewDate = date("Y-m-d", strtotime("-1 month", $currentdate));

我有

有效期: 金额

2019-11-31: 15

2019-11-22: 20

2020-5-12: 30

2019-11-2: 10

如何只收取不低于更新日期且在上一个月范围内的金额。

假设您有一个包含到期日期的数组:

$arr = [
  0=>[
    'date' => '2019-12-31',
    'amount' => 15
  ],
  1=>[
    'date' => '2019-12-22',
    'amount' => 22
  ],
    2=>[
    'date' => '2020-5-12',
    'amount' => 33
  ],
    3=>[
    'date' => '2019-10-2',
    'amount' => 6
  ],
];

然后我们遍历数组,获取每个日期并使用 strtotime() 将其转换为减去 1 个月并将其与 2 条件进行比较 - 如果日期大于今天日期的 strtotime() 且小于 strtotime()今天日期+1个月的我们满足范围条件并保存数据:

$data = [];
foreach ($arr as $key => $value) {
   if(strtotime(date('Y-m-d')) <= strtotime($value['date'].'-1 month') && 
      strtotime(date('Y-m-d').'+1 month') >= strtotime($value['date'].'-1 month'))
   {
      $data[] = $value;
   }
}

var_dump($data);

通过研究@Angel 的答案,我明白了:

  $arr = [
      0=>[
        'date' => '2019-12-1',
        'amount' => 15
      ],
      1=>[
        'date' => '2019-11-31',
        'amount' => 22
      ],
      2=>[
        'date' => '2019-11-27',
        'amount' => 22
      ],
        3=>[
        'date' => '2019-11-12',
        'amount' => 33
      ],
        4=>[
        'date' => '2019-10-2',
        'amount' => 6
      ],
    ];

    $data = [];
    foreach ($arr as $key => $value) {
       if(strtotime(date('Y-m-d')) <= strtotime($value['date']) && 
  strtotime(date('Y-m-d').'+1 month') >= strtotime($value['date']))
       {
          $data[] = $value;
       }
    }
    echo "<pre>";
    print_r($data);
    echo "<pre>";