我目前允许在我的日历应用程序上每天或每周重复事件(使用 fullCalendar)。
我的视图有一个复选框,可以激活两个下拉菜单:一个用于重复间隔(每天、每周),另一个用于频率(一次、两次等)。
$evt_interval_options = array( //this will be $row->interval in the model
'86400' => 'Daily',
'604800' => 'Weekly';
$evt_frequency_options = array( //this will be //$i in the model
'1' => '2',
'2' => '3',
<?php echo form_checkbox('evt_repeat', 'FALSE', FALSE, 'class="repeat_checkbox"');
echo form_dropdown('evt_interval', $evt_interval_options');
echo form_dropdown('evt_frequency', $evt_frequency_options'); ?>
这最终会到达我的模型,它会运行一个循环来检查事件是否应该重复——如果是这样,它将考虑间隔 ( $row->interval
) 和频率 ( $i
)。
$cal_data[] = array(
'start' => strtotime($row->date_1 . ' ' . $row->time_1) + ($i ? ($row->interval * $i) : 0),
);
这可以很好地根据数据库中的单个记录条目显示多个每日或每周事件。
问题在于每月和每年。由于这些将具有可变的秒数,因为
03/01/2011 00:00:00 --> 04/01/2011 00:00:00 ===> 2674800 seconds
04/01/2011 00:00:00 --> 05/01/2011 00:00:00 ===> 2592000 seconds
and so on for monthly and yearly differences
那么我该如何解决这个问题呢?是否有任何功能或strtotime
命令可以帮助准确地指示每月应在 eg 上重复4th
或每年应在 eg 上重复July 4th
?
我正在使用 PHP 5.2.14。