Как получить даты понедельника и среды после каждой второй недели с заданной даты начала и окончания
Например
Start date : 01-01-2019
End Date : 05-03-2019
Понедельник и среда Каждую вторую неделю
Итак, следующие даты должны быть в списке
Wednesday : 02-01-2019
Monday : 14-01-2019
Wednesday : 16-01-2019
Monday : 28-01-2019
Wednesday : 30-01-2019
Monday : 11-02-2019
Wednesday : 13-02-2019
Monday : 25-02-2019
Wednesday : 27-02-2019
$startDate = '01-01-2019';
$endDate = '01-03-2019';
$day_number = '1';
$ofWeek = '2';
getDateForSpecificDayBetweenDates($startDate,$endDate,$day_number,$ofWeek);
function getDateForSpecificDayBetweenDates($startDate,$endDate,$day_number,$ofWeek){
$endDate = strtotime($endDate);
$days=array('1'=>'Monday','2' => 'Tuesday','3' => 'Wednesday','4'=>'Thursday','5' =>'Friday','6' => 'Saturday','7'=>'Sunday');
$date_array = array();
$cnt=0;
for($i = strtotime($days[$day_number], strtotime($startDate)); $i <= $endDate; $i = strtotime('+1 week', $i))
{
$weeknumber = weekOfMonth(date('Y-m-d',$i));
echo "Week : ".$weeknumber.' - Date : '.date('Y-m-d',$i)."<br>";
if($weeknumber == $ofWeek){
$date_array[$cnt]['dates']=date('Y-m-d',$i);
$date_array[$cnt]['week']=$weeknumber;
$cnt++;
}
}
echo "<pre>";print_r($date_array);echo "<pre>";
}
function weekOfMonth($date) {
// estract date parts
list($y, $m, $d) = explode('-', date('Y-m-d', strtotime($date)));
// current week, min 1
$w = 1;
// for each day since the start of the month
for ($i = 1; $i <= $d; ++$i) {
// if that day was a sunday and is not the first day of month
if ($i > 1 && date('w', strtotime("$y-$m-$i")) == 0) {
// increment current week
++$w;
}
}
// now return
return $w;
}
Я разработал этот код, но он дает мне только 2 недели в месяц, которые мне нужны каждые 2 недели после даты начала
Я не могу найти вторую неделю из диапазона. Как определить даты, начиная со второй недели
Будет выделена любая помощь