public function testGetMonthStartEndFromStringToFormat() { $time = '21-Feb-15 18:27:52'; $format = 'Y-m-d H:i:s'; $expected_start = '2015-02-01 00:00:00'; $expected_end = '2015-02-28 23:59:59'; $this->assertEquals($this->util->getMonthStart($time, $format), $expected_start); $this->assertEquals($this->util->getMonthEnd($time, $format), $expected_end); }
<?php namespace Events\UI; use DateTime; use DateTimeZone; use Events\API\Util; $start = (int) Util::getMonthStart((int) get_input('event_widget_start', time())); $dt = new DateTime(null, new DateTimeZone(Util::UTC)); $prev_start = $dt->setTimestamp($start)->modify('-1 month')->getTimestamp(); $next_start = $dt->setTimestamp($start)->modify('+1 month')->getTimestamp(); $prev = elgg_view('output/url', array('text' => '<<', 'href' => '#', 'class' => 'elgg-button elgg-button-action events-widget-nav', 'data-guid' => $vars['entity']->guid, 'data-start' => $prev_start)); if ($prev_start < $now && $start < $now && $vars['entity']->upcoming) { $prev = ' '; } $next = elgg_view('output/url', array('text' => '>>', 'href' => '#', 'class' => 'elgg-button elgg-button-action events-widget-nav float-alt', 'data-guid' => $vars['entity']->guid, 'data-start' => $next_start)); $current = $dt->setTimestamp($start)->format('F'); ?> <div class="row clearfix mbm"> <div class="elgg-col elgg-col-1of3"> <?php echo $prev; ?> </div> <div class="elgg-col elgg-col-1of3 center pts"> <h3><?php echo $current; ?> </h3> </div> <div class="elgg-col elgg-col-1of3">
} catch (Exception $ex) { register_error($ex->getMessage()); forward('', '403'); } } $entity = get_entity($guid); if (!$entity instanceof Calendar) { forward('', '404'); } $owner = $entity->getOwnerEntity(); elgg_set_page_owner_guid($owner->guid); //elgg_push_breadcrumb(elgg_echo('events:calendar'), "calendar/all"); elgg_push_breadcrumb($owner->name, "calendar/owner/{$owner->username}"); elgg_push_breadcrumb($entity->getDisplayName()); $start = (int) get_input('start', time()); $start = (int) Util::getMonthStart($start); $end = (int) Util::getMonthEnd($start); $timezone = Util::getClientTimezone(); $start_local = $start - Util::getOffset($start, Util::UTC, $timezone); $end_local = $end - Util::getOffset($end, Util::UTC, $timezone); $events = $entity->getAllEventInstances($start_local, $end_local); if (!$is_logged_in) { logout(); } elgg_register_menu_item('title', array('name' => 'calendar_view', 'href' => elgg_http_add_url_query_elements("calendar/view/{$entity->guid}", array('start' => $start, 'end' => $end)), 'text' => elgg_echo('events:view:calendar'), 'title' => elgg_echo('events:view:calendar:switch'), 'link_class' => 'elgg-button elgg-button-action')); elgg_register_menu_item('title', array('name' => 'ical_view', 'href' => $entity->getIcalURL("calendar/ical/{$entity->guid}/calendar{$entity->guid}.ics", array()), 'text' => elgg_echo('events:view:ical'), 'title' => elgg_echo('events:view:ical'), 'link_class' => 'elgg-button elgg-button-action js-events-ui-ical-modal-trigger')); $dt = new DateTime(null, new DateTimeZone(Util::UTC)); $prev_start = $dt->setTimestamp($start)->modify('-1 month')->getTimestamp(); $next_start = $dt->setTimestamp($start)->modify('+1 month')->getTimestamp(); elgg_register_menu_item('title', array('name' => 'prev_month', 'text' => "« " . $dt->setTimestamp($prev_start)->format('F'), 'href' => elgg_http_add_url_query_elements("calendar/feed/{$entity->guid}", array('start' => $prev_start)), 'link_class' => 'elgg-button elgg-button-action mlm', 'priority' => 100)); elgg_register_menu_item('title', array('name' => 'next_month', 'text' => $dt->setTimestamp($next_start)->format('F') . " »", 'href' => elgg_http_add_url_query_elements("calendar/feed/{$entity->guid}", array('start' => $next_start)), 'link_class' => 'elgg-button elgg-button-action', 'priority' => 101));