PHP for 循环表示每次的日期增量


php for loop for date increment each time

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

  $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 次。 比我如何重复日期循环。

试试这个:

<?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

最简单的方法是什么答案

阿斯拉文

下面的示例是遍历日期

  $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>
  }

你可以试试这个:

$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

使用以 2 为基数的 for 循环,然后直接输出您的日期:

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

结果:

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

实际上,我想在用户输入提醒的地方制作一个提醒日期。 让用户想要今天添加提醒,并希望在 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 天。

任何问题请告诉我。