Dunque ho dei contratti di manutenzione della durata da 1 a più anni e in ogni contratto sono previste annualmente delle parti di ricambio.

Esempio:
Conratto dal 16/11/2020 al 15/11/2023

Le parti incluse sono per i periodi:
dal 16/11/2020 al 15/11/21
dal 16/11/2021 al 15/11/22
dal 16/11/2023 al 15/11/23

---

Dovendo individuare il periodo in corso ho fatto così:

Codice PHP:
// $datainizio è la data iniziale del contratto

   
$dataOggi date("Y-m-d");
   
$periodoi $datainizio;
   
   
$periodof strtotime ('+1 year' strtotime ($periodoi));
   
$periodof date 'Y-m-d' $periodof );
   
$periodof strtotime '-1 day' strtotime ($periodof));
   
$periodof date 'Y-m-d' $periodof );
   
   if (!((
$dataOggi >= $periodoi)&&($dataOggi<=$periodof))){

    do {
     
$periodoi strtotime ('+1 year' strtotime ($periodoi));
     
$periodoi date 'Y-m-d' $periodoi );
     
$periodof strtotime ('+1 year' strtotime ($periodoi));
     
$periodof date 'Y-m-d' $periodof );   
     } while ((
$dataOggi >= $periodoi)&&($dataOggi<=$periodof));    
       
    } 
Di fatto tutto funziona, ma non sono convintissima!!!
Accetto critiche e consigli.
Grazie