Я делаю календарь, и теперь я нахожусь на периоде недели. Я не могу этого сделать, это работает, но только на следующий месяц, а другие нет.
$i = 1;
$den = $post->day;
$mesic = $array['month'];
$rok = $array['year'];
$minusDays = $this->numDays(date('l', $den.".".$mesi.".".$rok));
$startedWeek = date('W', strtotime($den.".".$post->month.".".$post->year));
$actualWeek = date('W', Time());
$startedWeek = $actualWeek - $startedWeek;
for($i; $i<6; $i++){
if($i==1){
$startedWeek = $startedWeek;
}else{
$startedWeek = $startedWeek+1;
}
$plusDay = date('j', strtotime($den.".".$mesic.".".$rok." + ".$startedWeek." weeks - ".$minusDays." days"));
$plusWeek = date('n',strtotime($den.".".$mesic.".".$rok." + ".$startedWeek." weeks - ".$minusDays." days"));
$plusYear = date('Y',strtotime($den.".".$mesic.".".$rok." + ".$startedWeek." weeks - ".$minusDays." days"));
echo "<input type='hidden' class='interval' data-id='".$post->id."' data-name='".$post->name."' data-d='".$plusDay."' data-day='".$plusDay."'
data-before='".$post->remindBefore."' data-unit='".$post->remindBeforeUnit."' data-remindBy='".$post->remindBy."' data-remindInterval='".$post->remindInterval."'
data-eventTimeH='".$post->remindH."' data-eventTimeM='".$post->remindM."'>";
}
$ post-> day — это день периода, $ array [‘month’] теперь указан месяц, $ array [‘year’] теперь указан год. Функция numDays, возвращающая 0-6, зависит от того, какой сегодня день. Спасибо. Это должно быть скрыто, потому что HTML 5 календарь.
Все в порядке, это в столбце St, следующий месяц такой же, но через 2 месяца в столбце Čt.
Хорошо, я сделал решение, во-первых, чтобы получить startDate периода
$dayOfWeek = date('w', strtotime($post->day.".".$post->month.".".$post->year)); // day of week to start period
после этого я устанавливаю переменную первого дня, которая равна 1. Она переходит в цикл, поэтому она равна 0. После добавления этой переменной я зацикливаюсь в цикле каждый день и проверяю, является ли фактическим днем среда или вторник и т. д.
$dd=0;
for($i=1; $i<7; $i++){
for($c=0; $c<7; $c++){
$dd++;
$actualDayOfWeek = date('w', strtotime($dd.".".$array['month'].".".$array['year']));
$plusDay = date('j', strtotime($dd.".".$array['month'].".".$array['year']));
if($dayOfWeek != $actualDayOfWeek){
}else{
$actualDayOfWeek = date('w', strtotime($dd.".".$array['month'].".".$array['year']));
$plusDay = date('j', strtotime($dd.".".$array['month'].".".$array['year']));
echo "<input type='hidden' class='interval' data-id='".$post->id."' data-name='".$post->name."' data-d='".$dd."' data-day='".$plusDay."'
data-before='".$post->remindBefore."' data-unit='".$post->remindBeforeUnit."' data-remindBy='".$post->remindBy."' data-remindInterval='".$post->remindInterval."'
data-eventTimeH='".$post->remindH."' data-eventTimeM='".$post->remindM."'>";
break;
}
}
}
Других решений пока нет …