本文整理汇总了PHP中Piwik\Period::generate方法的典型用法代码示例。如果您正苦于以下问题:PHP Period::generate方法的具体用法?PHP Period::generate怎么用?PHP Period::generate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Piwik\Period
的用法示例。
在下文中一共展示了Period::generate方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generate
/**
* Generates the subperiods (one for each month of the year)
*/
protected function generate()
{
if ($this->subperiodsProcessed) {
return;
}
parent::generate();
$year = $this->date->toString("Y");
for ($i = 1; $i <= 12; $i++) {
$this->addSubperiod(new Month(Date::factory("{$year}-{$i}-01")));
}
}
示例2: generate
/**
* Generates the subperiods (one for each day in the month)
*/
protected function generate()
{
if ($this->subperiodsProcessed) {
return;
}
parent::generate();
$date = $this->date;
$startMonth = $date->setDay(1)->setTime('00:00:00');
$endMonth = $startMonth->addPeriod(1, 'month')->setDay(1)->subDay(1);
$this->processOptimalSubperiods($startMonth, $endMonth);
}
示例3: generate
/**
* Generates the subperiods (one for each day in the month)
*/
protected function generate()
{
if ($this->subperiodsProcessed) {
return;
}
parent::generate();
$date = $this->date;
$startMonth = $date->setDay(1);
$currentDay = clone $startMonth;
while ($currentDay->compareMonth($startMonth) == 0) {
$this->addSubperiod(new Day($currentDay));
$currentDay = $currentDay->addDay(1);
}
}
示例4: generate
/**
* Generates the subperiods - one for each day in the week
*/
protected function generate()
{
if ($this->subperiodsProcessed) {
return;
}
parent::generate();
$date = $this->date;
if ($date->toString('N') > 1) {
$date = $date->subDay($date->toString('N') - 1);
}
$startWeek = $date;
$currentDay = clone $startWeek;
while ($currentDay->compareWeek($startWeek) == 0) {
$this->addSubperiod(new Day($currentDay));
$currentDay = $currentDay->addDay(1);
}
}
示例5: generate
/**
* Generates the subperiods
*
* @throws Exception
*/
protected function generate()
{
if ($this->subperiodsProcessed) {
return;
}
parent::generate();
if (preg_match('/(last|previous)([0-9]*)/', $this->strDate, $regs)) {
$lastN = $regs[2];
$lastOrPrevious = $regs[1];
if (!is_null($this->defaultEndDate)) {
$defaultEndDate = $this->defaultEndDate;
} else {
$defaultEndDate = $this->today;
}
$period = $this->strPeriod;
if ($period == 'range') {
$period = 'day';
}
if ($lastOrPrevious == 'last') {
$endDate = $defaultEndDate;
} elseif ($lastOrPrevious == 'previous') {
if ('month' == $period) {
$endDate = $defaultEndDate->subMonth(1);
} else {
$endDate = $defaultEndDate->subPeriod(1, $period);
}
}
$lastN = $this->getMaxN($lastN);
// last1 means only one result ; last2 means 2 results so we remove only 1 to the days/weeks/etc
$lastN--;
$lastN = abs($lastN);
$startDate = $endDate->addPeriod(-1 * $lastN, $period);
} elseif ($dateRange = Range::parseDateRange($this->strDate)) {
$strDateStart = $dateRange[1];
$strDateEnd = $dateRange[2];
$startDate = Date::factory($strDateStart);
if ($strDateEnd == 'today') {
$strDateEnd = 'now';
} elseif ($strDateEnd == 'yesterday') {
$strDateEnd = 'yesterdaySameTime';
}
// we set the timezone in the Date object only if the date is relative eg. 'today', 'yesterday', 'now'
$timezone = null;
if (strpos($strDateEnd, '-') === false) {
$timezone = $this->timezone;
}
$endDate = Date::factory($strDateEnd, $timezone);
} else {
throw new Exception(Piwik::translate('General_ExceptionInvalidDateRange', array($this->strDate, ' \'lastN\', \'previousN\', \'YYYY-MM-DD,YYYY-MM-DD\'')));
}
if ($this->strPeriod != 'range') {
$this->fillArraySubPeriods($startDate, $endDate, $this->strPeriod);
return;
}
$this->processOptimalSubperiods($startDate, $endDate);
// When period=range, we want End Date to be the actual specified end date,
// rather than the end of the month / week / whatever is used for processing this range
$this->endDate = $endDate;
}