我正在建立一个CRM系统,现在我需要为人们提供重复发生的事件。为此,他们必须填写每日,每周,每月或每年,以及在Google日历中执行此操作时的所有内容。
但是,我如何才能获得“星期一下一周3周”数组中的日期?
答案 0 :(得分:0)
$int_count = 3; // How many to repeat
$date = new \DateTime('next monday');
$result = array($date->format('Y-m-d'));
for ($i=1; $i<$int_count; $i++) {
$result[] = $date->modify('+1 week')->format('Y-m-d');
}
print_r($result);
结果:
Array
(
[0] => 2015-01-26
[1] => 2015-02-02
[2] => 2015-02-09
)
答案 1 :(得分:0)
最好的方法是使用DateTime
和DatePeriod
类。这是现在处理日期的最正确方法。它自动处理时区和DST转换。这就是你必须这样做的方式。
$daterange = new DatePeriod(new DateTime('next monday'), new DateInterval('P1W'), 2);
$dates = [];
foreach($daterange as $date) $dates []= $date->format("Y-m-d H:i:s");
print_r($dates);
结果将是:
Array
(
[0] => 2015-01-26 00:00:00
[1] => 2015-02-02 00:00:00
[2] => 2015-02-09 00:00:00
)