public function getTemperaturesEvolution($date, $period) { $temperatures = array(); $date = Date::factory('2013-10-10', 'UTC'); $period = new Range($period, 'last30'); $period->setDefaultEndDate($date); foreach ($period->getSubperiods() as $subPeriod) { if (self::$disableRandomness) { $server1 = 50; $server2 = 40; } else { $server1 = mt_rand(50, 90); $server2 = mt_rand(40, 110); } $value = array('server1' => $server1, 'server2' => $server2); $temperatures[$subPeriod->getLocalizedShortString()] = $value; } return DataTable::makeFromIndexedArray($temperatures); }
/** * Returns a date range string given a period type, end date and number of periods * the range spans over. * * @param string $period The sub period type, `'day'`, `'week'`, `'month'` and `'year'`. * @param int $lastN The number of periods of type `$period` that the result range should * span. * @param string $endDate The desired end date of the range. * @param Site $site The site whose timezone should be used. * @return string The date range string, eg, `'2012-01-02,2013-01-02'`. * @api */ public static function getRelativeToEndDate($period, $lastN, $endDate, $site) { $last30Relative = new Range($period, $lastN, $site->getTimezone()); $last30Relative->setDefaultEndDate(Date::factory($endDate)); $date = $last30Relative->getDateStart()->toString() . "," . $last30Relative->getDateEnd()->toString(); return $date; }
public function testCustomRangePreviousN() { $range = new Range('range', 'previous3'); $range->setDefaultEndDate(Date::factory('2008-01-03')); $correct = array('2007-12-31', '2008-01-01', '2008-01-02'); $this->assertEquals(count($correct), $range->getNumberOfSubperiods()); $this->assertEquals($correct, $range->toString()); }