使用php日期函数制作事件的全年日程安排

时间:2013-12-23 19:27:10

标签: php date

我有一个具有以下属性的事件:

id
name
weekday

因此,工作日每周都会发生一次事件。我想创建一个包含所有日期的数组(格式:dd-mm-yyyy),当该事件发生两个特定日期时。

我无法找出合适的逻辑/代码。

我实现了以下代码:

$day = date('d');//returns today's date in 2-digit format.
$year = date('Y');//4-digit format of current year
$month = date('m');//2-digit format of current month
$cal = array();
$ttdayid = $weekday;//5
$tt = 0;
$tt = abs($day-$ttdayid);
$ttday = $date - $tt;
while ($ttday>0) {
    if ($ttday<10) {
        $ttday = '0' . $ttday;
    }
    $arr = array(
                'id'    => $id,  
                'title' => $name,
                'start' => $year . '-' . $month . '-' . $ttday
                    );
    array_push($cal, $arr);
    $ttday-= 7;
}

上述代码仅适用于当前月份。我无法弄清楚如何扩展它以显示全年前一个月和下个月的日期。此外,如何包括闰年的案例。

1 个答案:

答案 0 :(得分:0)

使用DateTime()对象:

$current = new DateTime(); // creates a date for "today" by default
$end = new DateTime('yyyy-mm-dd'); // the ending date
$interval = new DateInterval('P7D'); // 1 week


while($current <= $end) {
    $cal[] = $current->format('Y-m-d');
    $current = $current->add($interval);
}