PHP日期:接下来3周的每个星期一(谷歌日历翻拍)

时间:2015-01-20 02:53:18

标签: php mysql date datetime

我正在建立一个CRM系统,现在我需要为人们提供重复发生的事件。为此,他们必须填写每日,每周,每月或每年,以及在Google日历中执行此操作时的所有内容。

但是,我如何才能获得“星期一下一周3周”数组中的日期?

2 个答案:

答案 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)

最好的方法是使用DateTimeDatePeriod类。这是现在处理日期的最正确方法。它自动处理时区和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
)