Piwik\Period\

Range

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.

Methods

The 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 start date of the period.

Signature

  • It returns a Date value.
  • It throws one of the following exceptions:

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 end date of the period.

Signature

  • Returns: null|Date

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 the current period as a string.

Signature

  • It returns a string value.

getLocalizedShortString()

Returns the current period as a localized short string.

Signature

  • It returns a string value.

getLocalizedLongString()

Returns the current period as a localized long string.

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'.

__construct()

Constructor.

Signature

  • It accepts the following parameter(s):
    • $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.

Signature

  • It accepts the following parameter(s):

  • It does not return anything.

parseDateRange()

Given a date string, returns false if not a date range, or returns the array containing start and end dates.

Signature

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

Signature

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

Signature

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

getRelativeToEndDate()

Returns a date range string given a period type, end date and number of periods the range spans over.

Signature

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

Signature

  • It does not return anything.

getParentPeriodLabel()

Signature

  • It does not return anything.