Piwik\

Period

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.

Methods

The abstract class defines the following methods:

__sleep()

Signature

  • It does not return anything.

__wakeup()

Signature

  • It does not return anything.

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:

  • date = 2012-01-01,2012-02-01 and period = 'day'
  • date = 2012-01-01,2012-02-01 and period = 'week'
  • date = last7 and period = 'month'

etc.

Signature

  • It accepts the following parameter(s):

    • $dateString

    • $period

  • It returns a 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.

Signature

  • It accepts the following parameter(s):

    • $dateString (string) —
  • It does not return anything.

  • It throws one of the following exceptions:
    • 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.

Signature

  • It returns a Date value.

getDateTimeStart()

Returns the start date & time of this period.

Signature

  • It returns a Date value.

getDateTimeEnd()

Returns the end date & time of this period.

Signature

  • It returns a Date value.

getDateEnd()

Returns the last day of the period.

Signature

  • It returns a Date value.

getId()

Returns the period ID.

Signature

  • Returns: int — A unique integer for this type of period.

getLabel()

Returns the label for the current period.

Signature

  • Returns: string"day", "week", "month", "year", "range"

getNumberOfSubperiods()

Returns the number of available subperiods.

Signature

  • It returns a 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.

Signature

toString()

Returns a list of strings representing the current period.

Signature

  • 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().

Signature

  • It returns a string value.

getPrettyString()

Returns a pretty string describing this period.

Signature

  • It returns a string value.

getLocalizedShortString()

Returns a short string description of this period that is localized with the currently used language.

Signature

  • It returns a string value.

getLocalizedLongString()

Returns a long string description of this period that is localized with the currently used language.

Signature

  • It returns a string value.

getRangeString()

Returns the date range string comprising two dates

Signature

  • Returns: string — eg, '2012-01-01,2012-01-31'.