【发布时间】:2015-07-09 13:57:34
【问题描述】:
创建事件时,我需要以日期时间格式设置事件开始和事件结束 (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 年 4 月 30 日开始到 2015 年 6 月 1 日的每周四的 10:30:00 开始并在 11:30:00 结束的事件(事件总是在同一天结束)。如何实现?
谢谢
【问题讨论】: