在指定的日期每周重复事件,直到特定日期。

7 浏览
0 Comments

在指定的日期每周重复事件,直到特定日期。

创建事件时,我需要以日期时间格式(0000-00-00 00:00:00)设置事件的开始时间和结束时间。

然后,我可以选择在特定日期之前设置该事件的每周重复(0000-00-00)。

但是,我无法正确地将重复事件插入到数据库中。以下是我的代码:

$startDateTime = '2015-04-30 10:30:00';
$endDateTime = '2015-04-30 11:30:00';
$repeatEndDate = '2015-06-01';
$timestamp = strtotime($startDateTime);
$day_of_week = date('l', $timestamp);
$step  = 1;
$unit  = 'W';
$repeatStart = new DateTime($startDateTime);
$repeatEnd   = new DateTime($repeatEndDate);
$repeatStart->modify($day_of_week);  
$interval = new DateInterval("P{$step}{$unit}");
$period   = new DatePeriod($repeatStart, $interval, $repeatEnd);
foreach ($period as $key => $date ) {
    $repeatQuery = 'INSERT INTO event(start,end,status,repeats) VALUES ("'.$startDateTime.'","'.$endDateTime.'","'.$status.'","'.$repeatEndDate.'")';
    $repeatResult = mysqli_query($db, $repeatQuery) or die (mysqli_error($db));
}

当我执行print_r($date);时,它看起来像这样,没有实际时间,只有00:00:00

DateTime Object
(
    [date] => 2015-04-30 00:00:00
    [timezone_type] => 3
    [timezone] => Europe/Berlin
)

我知道我不能像那样插入值,但是我不知道如何从对象中获取正确的值。

因此,在这个示例中,我需要插入在2015-04-30开始并在2015-06-01结束的每个星期四的事件,开始时间为10:30:00,结束时间为11:30:00(事件始终在同一天结束)。如何实现这一目标?

谢谢。

0