Php 查找接下来的13个星期一和最后一个星期一
我有下面的代码,从今天开始的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
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);
}