Piwik\
Date range representation.
Matomo (formerly Piwik) allows users to view aggregated statistics for single days and for date ranges consisting of several days. When requesting data, a date string and a period string must be used to specify the date range that the data regards. This is the class Matomo uses to represent and manipulate those date ranges.
There are five types of periods in Matomo: day, week, month, year and range, where range is any date range. The reason the other periods exist instead of just range is that Matomo will pre-archive reports for days, weeks, months and years, while every custom date range is archived on-demand.
The abstract class defines the following methods:
__sleep()
__wakeup()
isMultiplePeriod()
— Returns true if $dateString
and $period
represent multiple periods.checkDateFormat()
— Checks the given date format whether it is a correct date format and if not, throw an exception.getDateStart()
— Returns the first day of the period.getDateTimeStart()
— Returns the start date & time of this period.getDateTimeEnd()
— Returns the end date & time of this period.getDateEnd()
— Returns the last day of the period.getId()
— Returns the period ID.getLabel()
— Returns the label for the current period.getNumberOfSubperiods()
— Returns the number of available subperiods.getSubperiods()
— Returns the set of Period instances that together make up this period.isDateInPeriod()
— Returns whether the date $date
is within the current period or not.isPeriodIntersectingWith()
— Returns whether the given period date range intersects with this one.getBoundsInTimezone()
— Returns the start day and day after the end day for this period in the given timezone.toString()
— Returns a list of strings representing the current period.__toString()
ash; See toString().getPrettyString()
— Returns a pretty string describing this period.getLocalizedShortString()
— Returns a short string description of this period that is localized with the currently used language.getLocalizedLongString()
— Returns a long string description of this period that is localized with the currently used language.getRangeString()
— Returns the date range string comprising two dates__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 first day of the period.
Date
value.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 last day 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 a pretty string describing this period.
string
value.getLocalizedShortString()
Returns a short string description of this period that is localized with the currently used language.
string
value.getLocalizedLongString()
Returns a long string description of this period that is localized with the currently used language.
string
value.getRangeString()
Returns the date range string comprising two dates
string
—
eg, '2012-01-01,2012-01-31'
.