/** * Get calendar list heading. * * Parses calender date format and adapts to current display range. * * @since 3.0.0 * @access private * * @return array */ private function get_heading() { $calendar = $this->calendar; $start = Carbon::createFromTimestamp($this->start, $calendar->timezone); $end = Carbon::createFromTimestamp($this->end, $calendar->timezone); $date_format = $this->calendar->date_format; $date_order = simcal_get_date_format_order($date_format); if ($start->day == $end->day && $start->month == $end->month && $start->year == $end->year) { // Start and end on the same day. // e.g. 1 February 2020 $large = $small = date_i18n($calendar->date_format, $this->start); if ($date_order['d'] !== false && $date_order['m'] !== false) { if ($date_order['m'] > $date_order['d']) { if ($date_order['y'] !== false && $date_order['y'] > $date_order['m']) { $small = date_i18n('Y, d M', $this->start); } else { $small = date_i18n('d M Y', $this->start); } } else { if ($date_order['y'] !== false && $date_order['y'] > $date_order['m']) { $small = date_i18n('Y, M d', $this->start); } else { $small = date_i18n('M d Y', $this->start); } } } } elseif ($start->month == $end->month && $start->year == $end->year) { // Start and end days on the same month. // e.g. August 2020 if ($date_order['y'] === false) { // August. $large = $small = date_i18n('F', $this->start); } else { if ($date_order['y'] < $date_order['m']) { // 2020 August. $large = date_i18n('Y F', $this->start); $small = date_i18n('Y M', $this->start); } else { // August 2020. $large = date_i18n('F Y', $this->start); $small = date_i18n('M Y', $this->start); } } } elseif ($start->year == $end->year) { // Start and end days on months of the same year. // e.g. August - September 2020 if ($date_order['y'] === false) { // August - September. $large = date_i18n('F', $this->start) . ' - ' . date_i18n('F', $this->end); $small = date_i18n('M', $this->start) . ' - ' . date_i18n('M', $this->end); } else { if ($date_order['y'] < $date_order['m']) { // 2020, August - September. $large = $small = date('Y', $this->start) . ', '; $large .= date_i18n('F', $this->start) . ' - ' . date_i18n('F', $this->end); $small .= date_i18n('M', $this->start) . ' - ' . date_i18n('M', $this->end); } else { // August - September, 2020. $large = date_i18n('F', $this->start) . ' - ' . date_i18n('F', $this->end) . ', '; $small = date_i18n('M', $this->start) . ' - ' . date_i18n('M', $this->end) . ' '; $year = date('Y', $this->start); $large .= $year; $small .= $year; } } } else { $large = $small = date('Y', $this->start) . ' - ' . date('Y', $this->end); } return array('small' => $small, 'large' => $large); }
/** * Get calendar list heading. * * Parses calender date format and adapts to current display range. * * @since 3.0.0 * @access private * * @return array */ private function get_heading() { $calendar = $this->calendar; $start = Carbon::createFromTimestamp($calendar->start, $calendar->timezone); $end = Carbon::createFromTimestamp($this->end, $calendar->timezone); $date_format = $this->calendar->date_format; $date_order = simcal_get_date_format_order($date_format); if ($this->first_event !== 0) { $start = Carbon::createFromTimestamp($this->first_event, $calendar->timezone); } if ($this->last_event !== 0) { $end = Carbon::createFromTimestamp($this->last_event, $calendar->timezone); } $st = strtotime($start->toDateTimeString()); $et = strtotime($end->toDateTimeString()); // TODO Is logic here causing the weird "29 Oct, 2016" format when navigating? if ($start->day == $end->day && $start->month == $end->month && $start->year == $end->year) { // Start and end on the same day. // e.g. 1 February 2020 $large = $small = date_i18n($calendar->date_format, $st); if ($date_order['d'] !== false && $date_order['m'] !== false) { if ($date_order['m'] > $date_order['d']) { if ($date_order['y'] !== false && $date_order['y'] > $date_order['m']) { $small = date_i18n('Y, d M', $st); } else { $small = date_i18n('d M Y', $st); } } else { if ($date_order['y'] !== false && $date_order['y'] > $date_order['m']) { $small = date_i18n('Y, M d', $st); } else { $small = date_i18n('M d Y', $st); } } } } elseif ($start->month == $end->month && $start->year == $end->year) { // Start and end days on the same month. // e.g. August 2020 if ($date_order['y'] === false) { // August. $large = $small = date_i18n('F', $st); } else { if ($date_order['y'] < $date_order['m']) { // 2020 August. $large = date_i18n('Y F', $st); $small = date_i18n('Y M', $st); } else { // August 2020. $large = date_i18n('F Y', $st); $small = date_i18n('M Y', $st); } } } elseif ($start->year == $end->year) { // Start and end days on months of the same year. // e.g. August - September 2020 if ($date_order['y'] === false) { // August - September. $large = date_i18n('F', $st) . ' - ' . date_i18n('F', $et); $small = date_i18n('M', $st) . ' - ' . date_i18n('M', $et); } else { if ($date_order['y'] < $date_order['m']) { // 2020, August - September. $large = $small = date('Y', $st) . ', '; $large .= date_i18n('F', $st) . ' - ' . date_i18n('F', $et); $small .= date_i18n('M', $st) . ' - ' . date_i18n('M', $et); } else { // August - September, 2020. $large = date_i18n('F', $st) . ' - ' . date_i18n('F', $et) . ', '; $small = date_i18n('M', $st) . ' - ' . date_i18n('M', $et) . ' '; $year = date('Y', $st); $large .= $year; $small .= $year; } } } else { $large = $small = date('Y', $st) . ' - ' . date('Y', $et); } return array('small' => $small, 'large' => $large); }