php中的循环日期函数

php中的循环日期函数,php,datetime,strtotime,Php,Datetime,Strtotime,你好 我正在尝试创建具有以下内容的定期日期系统: 第n个月的第n天(每3个月的第2天) 其输出将始终为当前日期+4个月的3天 如何让它显示第n个月的第n天 因为我也试过了 $this_months_friday = strtotime('every 3 days +4 months'); 它没有返回任何结果。我应该坚持使用strotime还是使用php的DateTime函数。虽然我仍然无法为这种日期序列制定正确的论点 任何帮助都将不胜感激 谢谢。最好每隔一段时间使用DateTime: $d =

你好

我正在尝试创建具有以下内容的定期日期系统:

第n个月的第n天(每3个月的第2天)

其输出将始终为当前日期+4个月的3天

如何让它显示第n个月的第n天

因为我也试过了

$this_months_friday = strtotime('every 3 days +4 months');
它没有返回任何结果。我应该坚持使用strotime还是使用php的DateTime函数。虽然我仍然无法为这种日期序列制定正确的论点

任何帮助都将不胜感激


谢谢。

最好每隔一段时间使用DateTime:

$d = new DateTime();
$d->add(new DateInterVal('P' . $days . 'D'))->add('new DateInterVal('P' . $months . 'M'));
不确定你想要的是什么两个示例间隔

您希望Interval在4个月后开始,然后每3天重复一次

那更像是

$d = new DateTime();
$d->add(new DateInterval('P4M')); // jump ahead 4 months immediately
$day3 = new DateInterval('P3D');

for ($i = 0; $i < 100; $i++) {
   $d->add($day3); // jump ahead 3 days
   ... do something with this new date
}

使用DateTime时最好间隔几次:

$d = new DateTime();
$d->add(new DateInterVal('P' . $days . 'D'))->add('new DateInterVal('P' . $months . 'M'));
不确定你想要的是什么两个示例间隔

您希望Interval在4个月后开始,然后每3天重复一次

那更像是

$d = new DateTime();
$d->add(new DateInterval('P4M')); // jump ahead 4 months immediately
$day3 = new DateInterval('P3D');

for ($i = 0; $i < 100; $i++) {
   $d->add($day3); // jump ahead 3 days
   ... do something with this new date
}

您可以通过将值保存在变量中来实现这一点,如下所示:

    $day=3;
    $month=4;
    echo date("d-m-y",strtotime('+'.$day .'days' .'+'.$month.'months'));
说明:

7月+4月=11月

87月+3天=11天7月

输出: 11-11-13


注意:仅举我硬编码的值为例,您可以使它们成为动态的。

您可以通过将值保存在如下变量中来实现:

    $day=3;
    $month=4;
    echo date("d-m-y",strtotime('+'.$day .'days' .'+'.$month.'months'));
说明:

7月+4月=11月

87月+3天=11天7月

输出: 11-11-13


注意:仅举我硬编码的值为例,您可以将其动态化。

不,这更像是第4个月的第4天,我做了+3天+4个月,根据一些读数,+3表示将在第3天,+4个月,因为它总是每4个月重复一次。不。STROTIME将把
+3天
解释为从现在起的3天。与+4个月相同。e、 今天+3天+4个月将是11月12日。你可能不得不咬紧牙关,做一些约会数学。e、 g.计算+4个月(11月),然后重新生成新的日期字符串
2013-$M-03
,以获得第3个月。Strotime的英语解析有时令人惊讶,但它不是通灵的。太容易出错了。哦,我明白了,我怎么能把它解释成一个重复发生的事件呢?事实上,我想在每次日期到来时重置该值。但是我希望能找到一个更简单的函数来解决这个问题,因为PHP不做重复事件。这取决于你。请看我对以上答案的最后一次编辑。我明白了,谢谢你,但你介意为你的答案添加一些解释吗。谢谢:)不,这更像是第4个月的第4天,我做了+3天+4个月,根据一些阅读,+3意味着它将在第3天,并且+4个月,因为它将总是每4个月重复一次。不。STROTIME将把
+3天
解释为从现在起的3天。与+4个月相同。e、 今天+3天+4个月将是11月12日。你可能不得不咬紧牙关,做一些约会数学。e、 g.计算+4个月(11月),然后重新生成新的日期字符串
2013-$M-03
,以获得第3个月。Strotime的英语解析有时令人惊讶,但它不是通灵的。太容易出错了。哦,我明白了,我怎么能把它解释成一个重复发生的事件呢?事实上,我想在每次日期到来时重置该值。但是我希望能找到一个更简单的函数来解决这个问题,因为PHP不做重复事件。这取决于你。请看我对以上答案的最后一次编辑。我明白了,谢谢你,但你介意为你的答案添加一些解释吗。谢谢:)