Piwik\Period\
Arbitrary date range representation.
This class represents a period that contains a list of consecutive days as subperiods It is created when the period query parameter is set to range and is used to calculate the subperiods of multiple period requests (eg, when period=day and date=2007-07-24,2013-11-15).
The range period differs from other periods mainly in that since it is arbitrary, range periods are not pre-archived by the cron core:archive command.
The class defines the following methods:
__sleep()__wakeup()isMultiplePeriod() ash; Returns true if $dateString and $period represent multiple periods. Inherited from PeriodcheckDateFormat() ash; Checks the given date format whether it is a correct date format and if not, throw an exception. Inherited from PeriodgetDateStart() — Returns the start date of the period.getDateTimeStart() ash; Returns the start date & time of this period. Inherited from PeriodgetDateTimeEnd() ash; Returns the end date & time of this period. Inherited from PeriodgetDateEnd() — Returns the end date of the period.getId() ash; Returns the period ID. Inherited from PeriodgetLabel() ash; Returns the label for the current period. Inherited from PeriodgetNumberOfSubperiods() ash; Returns the number of available subperiods. Inherited from PeriodgetSubperiods() ash; Returns the set of Period instances that together make up this period. Inherited from PeriodisDateInPeriod() ash; Returns whether the date $date is within the current period or not. Inherited from PeriodisPeriodIntersectingWith() ash; Returns whether the given period date range intersects with this one. Inherited from PeriodgetBoundsInTimezone() ash; Returns the start day and day after the end day for this period in the given timezone. Inherited from PeriodtoString() ash; Returns a list of strings representing the current period. Inherited from Period__toString() ash; See toString(). Inherited from PeriodgetPrettyString() — Returns the current period as a string.getLocalizedShortString() — Returns the current period as a localized short string.getLocalizedLongString() — Returns the current period as a localized long string.getRangeString() — Returns the date range string comprising two dates__construct() — Constructor.setDefaultEndDate() — Sets the default end date of the period.parseDateRange() — Given a date string, returns false if not a date range, or returns the array containing start and end dates.getLastDate() — Returns the date that is one period before the supplied date.getDateXPeriodsAgo() — Returns the date that is X periods before the supplied date.getDayCount() — Return the number of days contained in this rangegetRelativeToEndDate() — Returns a date range string given a period type, end date and number of periods the range spans over.getImmediateChildPeriodLabel()getParentPeriodLabel()getMaxAllowedEndTimestamp() — Returns the max allowed end timestamp for a range.__sleep()__wakeup()isMultiplePeriod()Returns true if $dateString and $period represent multiple periods.
Will return true for date/period combinations where date references multiple
dates and period is not 'range'. For example, will return true for:
2012-01-01,2012-02-01 and period = 'day'2012-01-01,2012-02-01 and period = 'week'last7 and period = 'month'etc.
$dateString
string The date query parameter value.$period
string The period query parameter value.boolean value.checkDateFormat()Checks the given date format whether it is a correct date format and if not, throw an exception.
For valid date formats have a look at the Date::factory() method and isMultiplePeriod() method.
It accepts the following parameter(s):
$dateString (string) —It does not return anything or a mixed result.
Exception — If $dateString is in an invalid format or if the time is before
Tue, 06 Aug 1991.getDateStart()Returns the start date of the period.
getDateTimeStart()Returns the start date & time of this period.
Date value.getDateTimeEnd()Returns the end date & time of this period.
Date value.getDateEnd()Returns the end date of the period.
Date value.getId()Returns the period ID.
int —
A unique integer for this type of period.getLabel()Returns the label for the current period.
string —
"day", "week", "month", "year", "range"getNumberOfSubperiods()Returns the number of available subperiods.
int value.getSubperiods()Returns the set of Period instances that together make up this period. For a year, this would be 12 months. For a month this would be 28-31 days. Etc.
Period[] value.isDateInPeriod()Returns whether the date $date is within the current period or not.
Note: the time component of the period's dates and $date is ignored.
It accepts the following parameter(s):
$date (Date) —It returns a bool value.
isPeriodIntersectingWith()Returns whether the given period date range intersects with this one.
It accepts the following parameter(s):
$other (Period) —It returns a bool value.
getBoundsInTimezone()Returns the start day and day after the end day for this period in the given timezone.
It accepts the following parameter(s):
$timezone (string) —It does not return anything or a mixed result.
toString()Returns a list of strings representing the current period.
It accepts the following parameter(s):
$format (string) —
The format of each individual day.Returns: array|string —
An array of string dates that this period consists of.
__toString()See toString().
string value.getPrettyString()Returns the current period as a string.
string value.getLocalizedShortString()Returns the current period as a localized short string.
string value.getLocalizedLongString()Returns the current period as a localized long string.
string value.getRangeString()Returns the date range string comprising two dates
string —
eg, '2012-01-01,2012-01-31'.__construct()Constructor.
$strPeriod (string) —
The type of period each subperiod is. Either 'day', 'week', 'month' or 'year'.$strDate (string) —
The date range, eg, '2007-07-24,2013-11-15'.$timezone (string) —
The timezone to use, eg, 'UTC'.$today (bool|Date) —
The date to use as today. Defaults to Date::factory('today', $timzeone).setDefaultEndDate()Sets the default end date of the period.
It accepts the following parameter(s):
$oDate (Date) —It does not return anything or a mixed result.
parseDateRange()Given a date string, returns false if not a date range,
or returns the array containing start and end dates.
It accepts the following parameter(s):
$dateString (string) —Returns: mixed —
array(1 => dateStartString, 2 => dateEndString) or false if the input was not a date range.
getLastDate()Returns the date that is one period before the supplied date.
It accepts the following parameter(s):
$date (bool|string) —
The date to get the last date of.$period (bool|string) —
The period to use (either 'day', 'week', 'month', 'year');Returns: array —
An array with two elements, a string for the date before $date and
a Period instance for the period before $date.
getDateXPeriodsAgo()Returns the date that is X periods before the supplied date.
It accepts the following parameter(s):
$subXPeriods
$date
$period
Returns: array —
An array with two elements, a string for the date before $date and
a Period instance for the period before $date.
getDayCount()Return the number of days contained in this range
int value.getRelativeToEndDate()Returns a date range string given a period type, end date and number of periods the range spans over.
It accepts the following parameter(s):
$period (string) —
The sub period type, 'day', 'week', 'month' and 'year'.$lastN (int) —
The number of periods of type $period that the result range should span.$endDate (string) —
The desired end date of the range.$site (Site) —
The site whose timezone should be used.Returns: string —
The date range string, eg, '2012-01-02,2013-01-02'.
getImmediateChildPeriodLabel()getParentPeriodLabel()getMaxAllowedEndTimestamp()Returns the max allowed end timestamp for a range. If an enddate after this timestamp is provided, Matomo will automatically lower the end date to the date returned by this method.
The max supported timestamp is always set to end of the current year plus 10 years.
int value.