Anonymous
Как показать все даты года еженедельно
Сообщение
Anonymous » 08 окт 2024, 20:53
Я хочу показывать все даты года, сгруппированные еженедельно, и показывать каждый день недели в одной строке таблицы.
Приведенный ниже код показывает все даты года: (
https://stackoverflow.com/a/4044939 )
Код: Выделить всё
$now = mktime(0,0,0,1,1,2024);
$aYearLater = $now + 31536000;
$allDates = Array();
$friday = strtotime('Next Friday', strtotime('-1 Day', $now));
$saturday = strtotime('Next Saturday', strtotime('-1 Day', $now));
$sunday = strtotime('Next Sunday', strtotime('-1 Day', $now));
$monday = strtotime('Next Monday', strtotime('-1 Day', $now));
$tuesday = strtotime('Next Tuesday', strtotime('-1 Day', $now));
$wednesday = strtotime('Next Wednesday', strtotime('-1 Day', $now));
$thursday = strtotime('Next Thursday', strtotime('-1 Day', $now));
while(1){
if($saturday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $saturday));
$b = array('daynum'=>date('w', $saturday,'','','en'));
$allDates[] = array_merge($a,$b);
if($sunday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $sunday));
$b = array('daynum'=>date('w', $sunday,'','','en'));
$allDates[] = array_merge($a,$b);
if($monday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $monday));
$b = array('daynum'=>date('w', $monday,'','','en'));
$allDates[] = array_merge($a,$b);
if($tuesday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $tuesday));
$b = array('daynum'=>date('w', $tuesday,'','','en'));
$allDates[] = array_merge($a,$b);
if($wednesday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $wednesday));
$b = array('daynum'=>date('w', $wednesday,'','','en'));
$allDates[] = array_merge($a,$b);
if($thursday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $thursday));
$b = array('daynum'=>date('w', $thursday,'','','en'));
$allDates[] = array_merge($a,$b);
if($friday > $aYearLater)
break 1;
$a = array('date'=>date('Y-m-d l', $friday));
$b = array('daynum'=>date('w', $friday,'','','en'));
$allDates[] = array_merge($a,$b);
$friday = strtotime('+1 Week', $friday);
$saturday = strtotime('+1 Week', $saturday);
$sunday = strtotime('+1 Week', $sunday);
$monday = strtotime('+1 Week', $monday);
$tuesday = strtotime('+1 Week', $tuesday);
$wednesday = strtotime('+1 Week', $wednesday);
$thursday = strtotime('+1 Week', $thursday);
}
foreach ($allDates as $k=>$v){
echo $allDates[$k]['date'].''.$allDates[$k]['daynum'].'';
}
как мне группировать эти даты по неделям?
Я не хочу использовать DateTime в PHP.
спасибо.
Я искал в stackoverflow но не нашел ответа
Подробнее здесь:
https://stackoverflow.com/questions/790 ... ear-weekly
1728409989
Anonymous
Я хочу показывать все даты года, сгруппированные еженедельно, и показывать каждый день недели в одной строке таблицы. Приведенный ниже код показывает все даты года: (https://stackoverflow.com/a/4044939) [code]$now = mktime(0,0,0,1,1,2024); $aYearLater = $now + 31536000; $allDates = Array(); $friday = strtotime('Next Friday', strtotime('-1 Day', $now)); $saturday = strtotime('Next Saturday', strtotime('-1 Day', $now)); $sunday = strtotime('Next Sunday', strtotime('-1 Day', $now)); $monday = strtotime('Next Monday', strtotime('-1 Day', $now)); $tuesday = strtotime('Next Tuesday', strtotime('-1 Day', $now)); $wednesday = strtotime('Next Wednesday', strtotime('-1 Day', $now)); $thursday = strtotime('Next Thursday', strtotime('-1 Day', $now)); while(1){ if($saturday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $saturday)); $b = array('daynum'=>date('w', $saturday,'','','en')); $allDates[] = array_merge($a,$b); if($sunday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $sunday)); $b = array('daynum'=>date('w', $sunday,'','','en')); $allDates[] = array_merge($a,$b); if($monday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $monday)); $b = array('daynum'=>date('w', $monday,'','','en')); $allDates[] = array_merge($a,$b); if($tuesday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $tuesday)); $b = array('daynum'=>date('w', $tuesday,'','','en')); $allDates[] = array_merge($a,$b); if($wednesday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $wednesday)); $b = array('daynum'=>date('w', $wednesday,'','','en')); $allDates[] = array_merge($a,$b); if($thursday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $thursday)); $b = array('daynum'=>date('w', $thursday,'','','en')); $allDates[] = array_merge($a,$b); if($friday > $aYearLater) break 1; $a = array('date'=>date('Y-m-d l', $friday)); $b = array('daynum'=>date('w', $friday,'','','en')); $allDates[] = array_merge($a,$b); $friday = strtotime('+1 Week', $friday); $saturday = strtotime('+1 Week', $saturday); $sunday = strtotime('+1 Week', $sunday); $monday = strtotime('+1 Week', $monday); $tuesday = strtotime('+1 Week', $tuesday); $wednesday = strtotime('+1 Week', $wednesday); $thursday = strtotime('+1 Week', $thursday); } foreach ($allDates as $k=>$v){ echo $allDates[$k]['date'].''.$allDates[$k]['daynum'].''; } [/code] как мне группировать эти даты по неделям? Я не хочу использовать DateTime в PHP. спасибо. Я искал в stackoverflow но не нашел ответа Подробнее здесь: [url]https://stackoverflow.com/questions/79067118/how-to-show-all-dates-of-the-year-weekly[/url]