How to increment time from a date by x minutes to an end date excluding y breaks

Am new to php loops and need some advise on how to approach this:

I am looking for a way to echo/show incremented time slots, excluding break times. Here are the variables am going to be working with,

$Startdate=2022-09-1;
$EndDate=2022-09-02;

$Starttime=10:00;
$Endtime=18:00;

$TimeSlot_duration=30minutes;

$Breaktimestart=12:00;
$BreaktimeEnds=14:00;

I would want to be able to echo theses time slots and their count. Something like:

24 available slots:  
2022-09-1,10:00 
2022-09-1,10:30 
2022-09-1,11:00 
2022-09-1,11:30 
2022-09-1,14:00 
2022-09-1,14:30 
...etc

Any advise would be appreciated.