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 查找接下来的13个星期一和最后一个星期一_Php_Date_Datetime - Fatal编程技术网

Php 查找接下来的13个星期一和最后一个星期一

Php 查找接下来的13个星期一和最后一个星期一,php,date,datetime,Php,Date,Datetime,我有下面的代码,从今天开始的13个星期一返回 for($i=1; $i<=13; $i++){ echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>"; } 对于($i=1;$i请尝试以下操作: echo date("Y-m-d", strtotime('-1 Monday'))."<br>"; for($i=1; $i<=13; $i++){ echo date("Y-m-d", str

我有下面的代码,从今天开始的13个星期一返回

for($i=1; $i<=13; $i++){
    echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}
对于($i=1;$i请尝试以下操作:

echo date("Y-m-d", strtotime('-1 Monday'))."<br>";
for($i=1; $i<=13; $i++){
    echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}
echo日期(“Y-m-d”,标准时间('-1周一”)。“
”; 对于($i=1;$i),您可以使用:

for($i=-1; $i<=13; $i++){
    if($i !== 0){
        echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";        
    }
}

对于($i=-1;$i我会这样做:

for($i =- 1; $i <= 13; $i == 0 ? $i += 2 : $i++){
    echo date("Y-m-d", strtotime("$i Monday")) . "<br>";
}
for($i=-1;$i这应该有效(你也可以在其他日子测试!=今天)

//为了避免午夜和夏时制出现问题
$refTime=日期(“Y-m-d 12:00:00”);

对于($i=-1;$i我的方法如下(通过使用DateTime类)

$monday=new DateTime('last monday');//如果今天是星期一,则返回上周的
$oneWeek=新日期间隔('P1W');
对于($i=0;$iformat('Y-m-d')。“
”; $monday->add($oneWeek); }
您可以在循环中添加一个条件来忽略
$i=0;
案例。类似于
如果($i==0)继续;
如果今天是星期一怎么办?@chumkiu:+0星期一如果今天是星期一就可以:)@Marc如果他想要+0星期一做什么就可以了:-)看起来您喜欢生成器:)我也喜欢使用DateTime和相关对象:)使生活更加轻松
for($i=-1; $i<=13; $i++){
    if($i !== 0){
        echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";        
    }
}
for($i =- 1; $i <= 13; $i == 0 ? $i += 2 : $i++){
    echo date("Y-m-d", strtotime("$i Monday")) . "<br>";
}
function mondays() {
    $begin = new DateTime('last monday');
    $end = clone $begin;
    $end->add(new DateInterval('P14W')); // next 13 + last

    $interval = new DateInterval('P1W');
    $daterange = new DatePeriod($begin, $interval ,$end);

    foreach($daterange as $date){
        yield $date;
    }
}


foreach(mondays() as $date){
    echo $date->format("Y-m-d"), PHP_EOL;
}
//In order to avoid problems with midnight and daylight saving time
$refTime = date("Y-m-d 12:00:00");

for($i=-1; $i<13; $i++){
    echo date("Y-m-d", strtotime("$refTime this Monday +".$i*7 ." days"))."<br>";
}
$monday = new DateTime('last monday'); //if today is monday this will return last week's
$oneWeek = new DateInterval('P1W');
for($i=0; $i<=13; $i++){
    echo $monday->format('Y-m-d')."<br>";
    $monday->add($oneWeek);
}