У меня странная проблема с датами событий, и я постарался ее исправить, но не смог этого сделать.Опуская лишние месяцы и годы в списке диапазонов дат
Я прилагаю скриншот того, как я хочу, чтобы отобразить даты на странице:
В картине первое событие Deine Energie в Aktion! представляет собой комбинацию из 5 событий с каждым событием, имеющим дату начала и дату окончания.
Первая часть мероприятия - однодневное мероприятие, которое начинается 4 апреля и заканчивается 4 апреля. Аналогичным образом вторая часть находится 7 апреля, 3-я часть 9 апреля и 4-я часть 20 апреля
Последняя часть начинается 5 мая и заканчивается 10 мая.
Даты хранятся в базе данных в следующем формате: Я показываю даты для последней части события. Дата начала мероприятия: 2013-05-05 00:00:00 Дата окончания действия: 2013-05-10 00:00:00
Поэтому я хочу отображать даты в формате, показанном на картинке.
Существует несколько случаев: Прежде всего, если все даты будут входить в течение одного месяца, мы будем отображать имя месяца в конце только один раз. Во-вторых, если месяцы будут изменены, то имя месяца будет показано после даты изменения месяца.
Я получаю даты событий в цикле while, так как мне сравнить текущую дату события с датой предстоящего события в цикле.
Это код, который я использовал до сих пор, чтобы получить дату из базы данных ..
$nid = $row->nid;
$get_product_id = "SELECT product_id from {uc_product_kits} where nid='$nid'";
$res = db_query($get_product_id);
while ($get_product_id_array_value = db_fetch_array($res)) {
$prductid = $get_product_id_array_value['product_id'];
$start_date = db_query("select event_start,event_end from {event} where nid=%d",$prductid);
$start_date_value = db_fetch_object($start_date);
$end_value = $start_date_value->event_start;
$event_end_date = $start_date_value->event_end;
$TotalStart = date("d M Y", strtotime($end_value));
$TotalEnd = date("d M Y", strtotime($event_end_date));
$onlyMonthStart = date("M", strtotime($end_value));
$onlyMonthEnd = date("M", strtotime($event_end_date));
//$groupMonth = db_query("select event_start,event_end, month from {event} where nid=%d group by ",$prductid);
if($TotalStart == $TotalEnd){
$startDay = date("d", strtotime($end_value));
$startMonth = date("M", strtotime($end_value));
if(in_array($startMonth,$newMonth)) {
echo $onlstartdate;
}
else {
$onlstartdate = date("d", strtotime($end_value));
echo $onlstartdate;
$tempStorage[] = $startMonth
}
//$newMonth[] = $startMonth;
}
}
Я обновил свой ответ с некоторыми примерами кода. –
Спасибо Мартину. Это сработало для меня. –
Добро пожаловать. Счастлив, это помогло тебе. –