我正试图把一些代码放在PHP中,以便在我添加日期后,下一个x数字日期被添加。
不详细说明,一般的想法是,在客户被访问后,将输入访问日期,然后触发此代码,添加下一个x访问日期(访问将每6个月一次),但根据客户的不同,可能有3,4或5次访问,我将此设置为$值,并且能够计算未来的日期。
我不知道如何循环插入,所以如果
$value = 4, then
n1, initial date + 6 months
n2, initial date + (6*2) months
n3, initial date + (6*3) months
n4, initial date + (6*4) months - yes i know i could just add 6 months to n-1, but trying to keep it simple.
我从来没有在循环中使用过第n项方法,想知道是否有人可以a)为我指出相关文章的方向,b)给我一个例子。
基本上我想做的是循环它x次($value = x),然后在每个循环中可以使用6 * x。
感谢使用DateTime对象和DateInterval对象,这可以很简单地使用for
循环来完成。
$frequency = 6; // could be 6 or 12 months, set elsewhere in your code
$visit_count = 5; //for this example
$initial_date = new DateTime($value["VisitDate"]); // last visit date
$interval = new DateInterval("P$frequencyM"); // visit every $frequency months
for ( $i=0; $i < $visit_count; $i++ ) {
$visits[] = clone $initial_date->add($interval);
}
print_r($visits);
结果
Array
(
[0] => DateTime Object
(
[date] => 2023-01-01 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
[1] => DateTime Object
(
[date] => 2023-07-01 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
[2] => DateTime Object
(
[date] => 2024-01-01 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
[3] => DateTime Object
(
[date] => 2024-07-01 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
[4] => DateTime Object
(
[date] => 2025-01-01 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
)