php for循环每次增加日期

时间:2016-04-04 11:15:16

标签: php date

我想循环一个日期,以便每个时间日期都按上一个日期递增。我的代码在这里。 PLZ回复任何人,提前谢谢

  $today = date('Y-m-d'); 

  for($i=1; $i<=4; $i++){                
    $repeat = strtotime("+2 day",strtotime($today));
    echo $rdate = date('Y-m-d',$repeat);
  }

我希望结果好像今天是2016-04-04比2016-04-06,2016-04-08,2016-04-10,2016-04-12。

实际上我想要提醒用户输入提醒的提醒日期。让用户想要今天添加提醒,并希望在下一个工作日的2天,3天或者他想要的任何时候重复5次。比如我用for循环重复约会。

5 个答案:

答案 0 :(得分:2)

试试这个:

<?php

$today = date('Y-m-d'); 

for($i=1; $i<=4; $i++)
{
    $repeat = strtotime("+2 day",strtotime($today));
    $today = date('Y-m-d',$repeat);
    echo $today;
}

输出:

2016-04-06
2016-04-08
2016-04-10
2016-04-12

答案 1 :(得分:2)

最简单的方法是答案

aslawin

下面的示例显示日期

  $begin = new DateTime($check_in);
  $end =  new DateTime($check_out);

  $step = DateInterval::createFromDateString('1 day');
  $period = new DatePeriod($begin, $step, $end);

  foreach ($period as $dt)
  {
      <sample code here>
  }

答案 2 :(得分:0)

你可以试试这个:

$today = date('Y-m-d'); 
for($i=1; $i<=8; $i++){
   if($i%2 == 0){
      $repeat = strtotime("+$i day",strtotime($today));
      echo $rdate = date('Y-m-d',$repeat);
   }  
}

<强>结果:

2016-04-06
2016-04-08
2016-04-10
2016-04-12

在此示例中,您可以将$i%2 == 0limit <= 8

一起使用

答案 3 :(得分:0)

使用带有基数2的for循环,然后直接输出日期:

transient

结果:

for( $i=2; $i<9; $i=$i+2 )
{
    echo date('Y-m-d', strtotime( "+ $i days" )) . PHP_EOL;
}

答案 4 :(得分:0)

  

实际上我想要提醒用户输入提醒的提醒日期。   让用户想要今天添加提醒,并希望重复5次   在下一个工作日,2天,3天或者他想要的东西。比我怎么样   用for循环重复日期。

我会帮助解决上述问题。首先,我只是说我对DateTime对象有一个巨大的个人偏好而不是简单地使用date它更灵活,而且在我看来更具可读性,所以在处理日期时总是建议使用date()

所以这里有一些代码:

$date = new DateTime(); // Pretend this is what the User entered. We got it via $_POST or something.
$interval = 2; // Repeat x times at y day intervals. (Not including the initial)
$repeatAmount = 2; // Repeat the reminder x times

for ($i = 0; $i <= $repeatAmount; ++$i) {
    echo $date->format('d/m/Y');    
    $date->modify('+'. $interval .' day');
}

$date = new DateTime()想象一下,这是用户输入的日期,这是我们的起点,我们此时的首次提醒。

$interval$repeatAmount是以天为单位的间隔,即我希望每2天一次,以及您希望它重复的次数,在我们的示例2中。

for ($i = 0; $i <= $repeatAmount; ++$i) {我们希望循环播放用户想要重复的次数。在某些情况下,小注释++$i往往比$i++的性能提升很小,因此除非您特别需要使用$i++

,否则默认情况通常更好。

echo $date->format('d/m/Y');只需打印出日期,我就会让你处理提醒逻辑。

$date->modify('+' . $interval . ' day');按用户要求的间隔增加dateTime对象,在我们的情况下增加2天。

有任何问题让我知道。

相关问题