我想循环一个日期,以便每个时间日期都按上一个日期递增。我的代码在这里。 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循环重复约会。
答案 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 == 0
与limit <= 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天。
有任何问题让我知道。