Предположим, у вас есть массив с датами истечения срока действия:
$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);