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 Period
checkDateFormat()
ash; Checks the given date format whether it is a correct date format and if not, throw an exception. Inherited from Period
getDateStart()
— Returns the start date of the period.getDateTimeStart()
ash; Returns the start date & time of this period. Inherited from Period
getDateTimeEnd()
ash; Returns the end date & time of this period. Inherited from Period
getDateEnd()
— Returns the end date of the period.getId()
ash; Returns the period ID. Inherited from Period
getLabel()
ash; Returns the label for the current period. Inherited from Period
getNumberOfSubperiods()
ash; Returns the number of available subperiods. Inherited from Period
getSubperiods()
ash; Returns the set of Period instances that together make up this period. Inherited from Period
isDateInPeriod()
ash; Returns whether the date $date
is within the current period or not. Inherited from Period
isPeriodIntersectingWith()
ash; Returns whether the given period date range intersects with this one. Inherited from Period
getBoundsInTimezone()
ash; Returns the start day and day after the end day for this period in the given timezone. Inherited from Period
toString()
ash; Returns a list of strings representing the current period. Inherited from Period
__toString()
ash; See toString(). Inherited from Period
getPrettyString()
— 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()
__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()