Мне нужно получить диапазон дат для дат начала и окончания, выбранных пользователем, проверить, что дата не приходится на выходные и/или праздничные дни, и вставить в базу данных для каждой допустимой даты до даты окончания.
Ниже мой код:
$aryRange=array();
$istartTime=mktime(1,0,0,substr($startTime,5,2), substr($startTime,8,2),substr($startTime,0,4));
$iendTime=mktime(1,0,0,substr($endTime,5,2), substr($endTime,8,2),substr($endTime,0,4));
if ($iendTime>=$istartTime)
{
array_push($aryRange,date('Y-m-d',$istartTime)); // first entry
while ($istartTime<$iendTime)
{
$istartTime+=86400; // add 24 hours
array_push($aryRange,date('Y-m-d',$istartTime));
}
}
$aryRange = array_values($aryRange);
$dates = array($aryRange);
$fdate = strtotime($startTime);
$day = date("N",$fdate);
$holidays = $this->Leave->PublicHoliday->find ('all', array('fields'=>array('PublicHoliday.SetDate')));
foreach($dates as $key => $value)
{
if ($day == 7 || $day == 6)
{
unset ($dates[$k]);
continue;
}
if (in_array($value, $holidays))
{
unset ($dates[$k]);
continue;
}
}
Я не знаю, как назначить дату начала и дату окончания для каждой записи и сохранить данные. Я думаю, что это можно сделать в цикле foreach
.
$this->request->data['Leave']['event_date'] = $value[0];
$this->request->data['Leave']['event_stop_time'] = $value[0];
$this->Leave->save($this->request->data);
Могу ли я сохранять строку за строкой по мере выполнения цикла foreach
? Любая помощь в сохранении данных очень ценится.
NB: event_date
будет похоже на event_stop_time
на один день.