<?php
function getItem($date, $startDate, $skipped_days){
$item = array('a','b','c','b','c');
$diff = date_create($startDate)->diff(date_create($date));
if($diff->invert) return false; //error $date < $startDate
return $item[($diff->days - $skipped_days) % 5];
}
//example for use
$startDate = '2019-10-01';
$skipday = '2019-10-07';
$skipped_days = 0;
$selected_start_date = '2019-10-01';
$selected_end_date = '2019-10-10';
$dates_array = array();
$current_date = strtotime($selected_start_date);
$last_date = strtotime($selected_end_date);
while( $current_date <= $last_date ) {
$dates_array[] = date('Y-m-d', $current_date);
$current_date = strtotime('+1 day', $current_date);
}
for($i=0; $i<count($dates_array); $i++) {
$today = $dates_array[$i];
$code = getItem($today, $startDate, $skipped_days);
if($dates_array[$i] == $skipday) {
$code = "SKIP";
$skipped_days++;
}
echo $today." ".$code."</br>\n";
}
preferences:
24.57 ms | 406 KiB | 5 Q