Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach两个DatePeriod对象_Php_Date_Foreach - Fatal编程技术网

Php Foreach两个DatePeriod对象

Php Foreach两个DatePeriod对象,php,date,foreach,Php,Date,Foreach,我想为我的网站创建计划。如何获得每周2天的日程安排。示例:每周显示周一和周五。这是我的代码: $day_of_week = "Monday"; $step = 1; $unit = 'W'; $start = new DateTime(""); $end = clone $start; $start->modify($day_of_week); // Move to first occurrence $end->add(new DateInterval('P7W')); //

我想为我的网站创建计划。如何获得每周2天的日程安排。示例:每周显示周一和周五。这是我的代码:

$day_of_week = "Monday";
$step  = 1;
$unit  = 'W';
$start = new DateTime("");
$end   = clone $start;
$start->modify($day_of_week); // Move to first occurrence
$end->add(new DateInterval('P7W')); // Move to 1 year from start
$interval = new DateInterval("P{$step}{$unit}");
$period   = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
    echo '<tr>';
    echo '<td><a href="lihatAbsen.php?tanggal='.$date->format('d-m-Y').'&id='.$id_kuliah.'">'.$date->format('d M Y').'</td>';
}

$day_of_week2 = "Friday";
$start->modify($day_of_week2); // Move to first occurence
$period2  = new DatePeriod($start, $interval, $end);
foreach ($period2 as $date) {
    echo '<td><a href="lihatAbsen.php?tanggal='.$date->format('d-m-Y').'&id='.$id_kuliah.'">'.$date->format('d M Y').'</td></tr>';
}
$day\u of_week=“周一”;
$step=1;
$unit='W';
$start=新日期时间(“”);
$end=clone$start;
$start->modify($day_of u week);//移动到第一个事件
$end->add(新日期间隔('P7W');//从开始到1年
$interval=新的日期间隔(“P{$step}{$unit}”);
$period=newdateperiod($start、$interval、$end);
foreach($期间为$日期){
回声';
回显'.$date->格式('d M Y');
}
$day\u of_week2=“星期五”;
$start->modify($day_of u week2);//移动到第一次出现
$period2=新的日期周期($start、$interval、$end);
foreach($period2作为$date){
回显'.$date->格式('d M Y');
}

它正在工作,但我想让
$period2
对象与
$period
对象打印在同一行
。如何做正确的循环?或者如何通过输入天数获得2天/周?

您可以操纵循环中的第一个日期,并将其添加到输出文本字符串中

$monday=$date->format('d-m-Y');
$friday= date("d-m-Y",strtotime("$monday +4 days"));

只需克隆当前的
$date
对象并将其移动到下一个星期五

$day_of_week = "Monday";
$step  = 1;
$unit  = 'W';
$start = new DateTime("");
$end   = clone $start;
$start->modify($day_of_week); 
$end->add(new DateInterval('P7W')); 
$interval = new DateInterval("P{$step}{$unit}");
$period   = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
    echo '<tr>';
    echo '<td><a href="lihatAbsen.php?tanggal='.$date->format('d-m-Y').'&id='.$id_kuliah.'">'.$date->format('d M Y').'</td>';

    $friday = clone $date;
    $friday->modify('next Friday');
    echo '<td><a href="lihatAbsen.php?tanggal='.$friday->format('d-m-Y').'&id='.$id_kuliah.'">'.$friday->format('d M Y').'</td></tr>';
}
$day\u of_week=“周一”;
$step=1;
$unit='W';
$start=新日期时间(“”);
$end=clone$start;
$start->modify($day\u of\u week);
$end->add(新的日期间隔('P7W'));
$interval=新的日期间隔(“P{$step}{$unit}”);
$period=newdateperiod($start、$interval、$end);
foreach($期间为$日期){
回声';
回显'.$date->格式('d M Y');
$friday=克隆$date;
$friday->modify(“下周五”);
回显'.$friday->格式('d M Y');
}

将DateTime()与date()和strotime混合使用?哎呀,很有建设性的批评。像你这样的家伙让这个网站变得如此受欢迎。你使用的是什么版本的PHP?哦,还有+1用于使用克隆、日期间隔和日期周期。这正是我需要的:D非常感谢John:D