美好的一天,
我正在尝试创建一个具有以下内容的重复日期系统:
第n个月的第n天(每3个月的第2天)
$this_months_friday = strtotime('+3 days +4 months');
输出将始终是当天+第4个月的3天。
如何让它显示第n个月的第n天?
因为我也试过
$this_months_friday = strtotime('every 3 days +4 months');
并没有返回任何结果。我应该坚持使用strtotime这个或移动到PHP的DateTime功能。虽然我仍然无法为这种日期序列制定正确的论据。
非常感谢任何帮助。
谢谢。
答案 0 :(得分:1)
使用DateTime和几个间隔可能会更好:
$d = new DateTime();
$d->add(new DateInterVal('P' . $days . 'D'))->add('new DateInterVal('P' . $months . 'M'));
不确定你想要的两个示例间隔是什么。
你想要一个internval在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
}
对于基本的重复活动,+ 4个月+ 3天,您只需要一个间隔:
$interval = new DateInteval('P4M3D'); // +4 months +3 days
$date = new DateTime();
while($some_condition) {
$date->add($interval);
do_something();
}
答案 1 :(得分:0)
您可以通过在以下变量中保存值来执行此操作:
$day=3;
$month=4;
echo date("d-m-y",strtotime('+'.$day .'days' .'+'.$month.'months'));
说明:
7 (7月)+ 4 月= 11 月(11月)
8 7月+ 3 天= 11 7月
输出: 11-11-13
注意:仅作为示例我将值设置为硬编码,您可以将它们设置为动态。