X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FEvent%2Feventlistitem.php;h=fb27704461378cc788c47a2754a7c572c7829574;hb=14f03a237e1a67a764a75cfa8e6fed34f0074a4b;hp=9bf34e765b34724591c2934564a8d11e0174406e;hpb=963d05265301c71138f9bb9bf08bab70a17419f1;p=quix0rs-gnu-social.git diff --git a/plugins/Event/eventlistitem.php b/plugins/Event/eventlistitem.php index 9bf34e765b..fb27704461 100644 --- a/plugins/Event/eventlistitem.php +++ b/plugins/Event/eventlistitem.php @@ -83,13 +83,33 @@ class EventListItem extends NoticeListItemAdapter $out->elementEnd('h3'); // VEVENT/H3 OUT - $startDate = strftime("%x", strtotime($event->start_time)); - $startTime = strftime("%R", strtotime($event->start_time)); + $now = new DateTime(); + $startDate = new DateTime($event->start_time); + $endDate = new DateTime($event->end_time); + $userTz = new DateTimeZone(common_timezone()); - $endDate = strftime("%x", strtotime($event->end_time)); - $endTime = strftime("%R", strtotime($event->end_time)); + // Localize the time for the observer + $now->setTimeZone($userTz); + $startDate->setTimezone($userTz); + $endDate->setTimezone($userTz); - // FIXME: better dates + $thisYear = $now->format('Y'); + $startYear = $startDate->format('Y'); + $endYear = $endDate->format('Y'); + + $dateFmt = 'D, F j, '; // e.g.: Mon, Aug 31 + + if ($startYear != $thisYear || $endYear != $thisYear) { + $dateFmt .= 'Y,'; // append year if we need to think about years + } + + $startDateStr = $startDate->format($dateFmt); + $endDateStr = $endDate->format($dateFmt); + + $timeFmt = 'g:ia'; + + $startTimeStr = $startDate->format($timeFmt); + $endTimeStr = $endDate->format("{$timeFmt} (T)"); $out->elementStart('div', 'event-times'); // VEVENT/EVENT-TIMES IN @@ -98,16 +118,16 @@ class EventListItem extends NoticeListItemAdapter $out->element('abbr', array('class' => 'dtstart', 'title' => common_date_iso8601($event->start_time)), - $startDate . ' ' . $startTime); - $out->text(' - '); - if ($startDate == $endDate) { + $startDateStr . ' ' . $startTimeStr); + $out->text(' – '); + if ($startDateStr == $endDateStr) { $out->element('span', array('class' => 'dtend', 'title' => common_date_iso8601($event->end_time)), - $endTime); + $endTimeStr); } else { $out->element('span', array('class' => 'dtend', 'title' => common_date_iso8601($event->end_time)), - $endDate . ' ' . $endTime); + $endDateStr . ' ' . $endTimeStr); } $out->elementEnd('div'); // VEVENT/EVENT-TIMES OUT