Class: I2CE Date

From IHRIS Wiki
Revision as of 20:19, 16 October 2009 by Litlfred (talk | contribs)

This article desrcibes the class I2CE_Date It is contained in the module I2CE in the package I2CE

The class is defined in the file: lib/I2CE_Date.php

@author Luke Duncan <lduncan@intrahealth.org>

@since v1.0.0

@version v2.0.0

Handles date manipulation.


I2CE_Dates are used to manage date and time values for form/HTML

display and for interacting with the database.


@package I2CE

@access public

Constants

I2CE_Date::YEAR_ONLY

Constant value to signify a date only including the year. Defined as: 1

I2CE_Date::MONTH_DAY

Constant value to signify a date only including the month and day of the month. Defined as: 2

I2CE_Date::DATE

Constant value to signify a date only including the date. Defined as: 3

I2CE_Date::DATE_TIME

Constant value to signify a date only including the date and time. Defined as: 4

I2CE_Date::TIME_ONLY

Constant value to signify a date only including the time. Defined as: 5

Variables

$second

The second value for the time.

  • Type: private nteger $second

$minute

The minute value for the time.

  • Type: private nteger $minute

$hour

The hour value for the time.

  • Type: private nteger $hour

$day

The day value for the date.

  • Type: private nteger $day

$month

The month value for the date.

  • Type: private nteger $month

$year

The year value for the date.

  • Type: private nteger $year

$type

The type of I2CE_Date object based on the constant values.

Possible date types are {@link YEAR_ONLY Year}, {@link MONTH_DAY Month and Day}, {@link DATE Date}, {@link DATE_TIME Date and Time}, and {@link TIME_ONLY Time}.

  • Type: private nteger $type

$months

Array of month names.

This should be modified to handle internationalization. The array of month names.

  • Type: static public y $months

$types

A list of all valid types for I2CE_Date objects.

  • Type: static private y $types

Methods

__construct()

Constructor method to create a new I2CE_Date object.

  • Signature: private function __construct($type)

Parameters:

  • integer $type
    The type of date object created. It defaults to date and time.
    • Default Value: self::DATE_TIME

addMonthDayElement()

Add a selection drop down for the month and date to be selected.

  • Signature: static public function addMonthDayElement($template,$name,$default,$showError,$node,$hidden,$blank)

Parameters:

  • $template
  • string $name
    The name of the selection element
  • I2CE_Date $default
    The default I2CE_Date object to use to preset the value.
  • boolean $showError
    A flag if this field is currently invalid to mark it as such.
  • domnode $node
    The node to append the element to.
  • boolean $hidden
    Set to true if the form element should be hidden. Defaults to false
    • Default Value: false
  • boolean $blank
    Set to true if this element should have a blank entry option. Defaults to false.
    • Default Value: false

addTimeElement()

Add a selection drop down for the hour, minute and second to be selected.

  • Signature: static public function addTimeElement($template,$name,$default,$showError,$node,$hidden)

Parameters:

  • $template
  • string $name
    The name of the selection element
  • I2CE_Date $default
    The default I2CE_Date object to use to preset the value.
  • boolean $showError
    A flag if this field is currently invalid to mark it as such.
  • domnode $node
    The node to append the element to.
  • boolean $hidden
    Set to true if the form element should be hidden.
    • Default Value: false

addYearElement()

Add a selection drop down for the year to be selected.

  • Signature: static public function addYearElement($template,$name,$default,$showError,$node,$year_range,$hidden,$blank)

Parameters:

  • $template
  • string $name
    The name of the selection element
  • I2CE_Date $default
    The default I2CE_Date object to use to preset the value.
  • boolean $showError
    A flag if this field is currently invalid to mark it as such.
  • domnode $node
    The node to append the element to.
  • array $year_range
    The range of years to use for the drop down.
  • boolean $hidden
    Set to true if the form element should be hidden. Defaults to false.
    • Default Value: false
  • boolean $blank
    Set to true if this element should have a blank entry option. Defaults to false.
    • Default Value: false

before()

Determines if a date is before the given date.

  • Signature: public function before($date)
  • Returns: boolean

Parameters:

blank()

Create a blank date object with no values set for anything.

  • Signature: static public function blank($type)
  • Returns: I2CE_Date

Parameters:

  • integer $type
    The type of date object created. It defaults to date and time.
    • Default Value: self::DATE_TIME

compare()

Compares a date to this one and returns -1 if it is before, 0 if the same and 1 if after this date.

  • Signature: public function compare($date)
  • Returns: integer

Parameters:

day()

  • Signature: public function day()
  • Returns: integer The day part of the date.

dbFormat()

Formats the date to be saved to MySQL

Formats the date object to a string that MySQL will recognize based on the date type.

  • Signature: public function dbFormat()
  • Returns: string

displayDate()

Displays the date in a readable format.

  • Signature: public function displayDate()

equals()

Determines if one date is identical to another.

  • Signature: public function equals($date)
  • Returns: boolean

Parameters:

fromDB()

Creates a date from a MySQL database formatted string

The type of this date object is determined by the string. The possible types are Month/Day ('0000-MM-DD'), Year Only ('YYYY-00-00'), Date ('YYYY-MM-DD'), Date/Time ('YYYY-MM-DD HH:MM:SS'), and Time Only ('HH:MM:SS'). If the string is blank a {@link blank() blank date} is returned. If none of thse formats match the {@link now() current date} is returned. Otherwise it is one of I2CE_DATE::DATE, I2CE_DATE::YEAR_ONLY, etc.

  • Signature: static public function fromDB($dateString,$type)
  • Returns: I2CE_Date

Parameters:

  • string $dateString
    Date formatted string from MySQL
  • int $type
    Defaults to null in which the type is guessed from the {$dateString}.
    • Default Value: null

getDate()

Creates a date object of the type Date.

  • Signature: static public function getDate($day,$month,$year)
  • Returns: I2CE_Date

Parameters:

  • integer $day
    Sets the day of the month to be used
    • Default Value: -1
  • integer $month
    Sets the month to be used
    • Default Value: -1
  • integer $year
    Sets the year to be used.
    • Default Value: -1

getDateTime()

Creates a date object of the type Date/Time.

  • Signature: static public function getDateTime($sec,$min,$hour,$day,$month,$year)
  • Returns: I2CE_Date

Parameters:

  • integer $sec
    Sets the seconds to be used
    • Default Value: -1
  • integer $min
    Sets the minutes to be used
    • Default Value: -1
  • integer $hour
    Sets the hour to be used.
    • Default Value: -1
  • integer $day
    Sets the day of the month to be used
    • Default Value: -1
  • integer $month
    Sets the month to be used
    • Default Value: -1
  • integer $year
    Sets the year to be used.
    • Default Value: -1

getDay()

Create a date object of the type Month/Day

  • Signature: static public function getDay($day,$month)
  • Returns: I2CE_Date

Parameters:

  • integer $day
    Sets the day of the month to be used
    • Default Value: -1
  • integer $month
    Sets the month to be used
    • Default Value: -1

getMonthName()

The month name text to be displayed for the given month number.

  • Signature: public function getMonthName($mon)
  • Returns: string

Parameters:

  • integer $mon

getTime()

Creates a date object of the type Time.

  • Signature: static public function getTime($sec,$min,$hour)
  • Returns: I2CE_Date

Parameters:

  • integer $sec
    Sets the seconds to be used
    • Default Value: -1
  • integer $min
    Sets the minutes to be used
    • Default Value: -1
  • integer $hour
    Sets the hour to be used.
    • Default Value: -1

getType()

get the type for this Date.

  • Signature: public function getType()
  • Returns: integer $type The type of date object created.

getValues()

Get the array of values associated to this date.

  • Signature: public function getValues()
  • Returns: array The keys of which match the names for generated html elements

getYear()

Create a date object of the type Year only.

  • Signature: static public function getYear($year)
  • Returns: I2CE_Date

Parameters:

  • integer $year
    Sets the year to be used.
    • Default Value: -1

hour()

  • Signature: public function hour()
  • Returns: integer The hour part of the time.

isDay()

Checks to see if the date's day matches the given day.

  • Signature: public function isDay($day)
  • Returns: boolean

Parameters:

  • integer $day

isHour()

Checks to see if the date's hour matches the given hour.

  • Signature: public function isHour($hour)
  • Returns: boolean

Parameters:

  • integer $hour

isMinute()

Checks to see if the date's minute matches the given minute.

  • Signature: public function isMinute($minute)
  • Returns: boolean

Parameters:

  • integer $minute

isMonth()

Checks to see if the date's month matches the given month.

  • Signature: public function isMonth($month)
  • Returns: boolean

Parameters:

  • integer $month

isSecond()

Checks to see if the date's second matches the given second.

  • Signature: public function isSecond($second)
  • Returns: boolean

Parameters:

  • integer $second

isValid()

Checks to see if the I2CE_Date object is valid

This method will check to see if the date object has valid entries based on the type.

  • Signature: public function isValid()
  • Returns: boolean

isYear()

Checks to see if the date's year matches the given year.

  • Signature: public function isYear($year)
  • Returns: boolean

Parameters:

  • integer $year

listMonths()

Adds the month values to a {@link I2CE_Template} object.

  • Signature: static public function listMonths($template,$selectId)

Parameters:

  • I2CE_Template $template
  • string $selectId
    The id of the element in the page to add the selections to.

listYears()

Adds a sequence of years to a {@link I2CE_Template} object.

It takes two optional arguments to limit the years to use. The initial year to start with is 1990 and it will end with the current year. @see I2CE_Template::setData()

  • Signature: static public function listYears($template,$selectId,$start,$end)

Parameters:

  • I2CE_Template $template
  • string $selectId
    The id of the element in the page to add the selections to.
  • integer $start
    The year to start with
    • Default Value: 1990
  • integer $end
    The year to end with.
    • Default Value: 0

minute()

  • Signature: public function minute()
  • Returns: integer The minute part of the time.

month()

  • Signature: public function month()
  • Returns: integer The month part of the date.

now()

Create a new I2CE_Date object with the current or given date and/or time. then it should be the same array structture as returned by getdate() or the one returned by I2CE_Date::getValues()

  • Signature: static public function now($type,$time_stamp,$strict)
  • Returns: mixed I2CE_Date or false if failure on strict mode

Parameters:

  • integer $type
    The type of date object created. It defaults to date and time.
    • Default Value: self::DATE_TIME
  • integer $time_stamp
    Defaults to null in which case we use the current time stamp. If it is an array
    • Default Value: null
  • mixed $strict
    Defaults to false. If true, does not return now. If 'blank', returns the blank date.
    • Default Value: false

second()

  • Signature: public function second()
  • Returns: integer the second part of the time.

setBlank()

Set the blank string to be used if this date is empty.

  • Signature: public function setBlank($text)

Parameters:

setType()

Set the type for this Date.

  • Signature: public function setType($type)

Parameters:

  • integer $type
    The type of date object created. It defaults to date and time.

year()

  • Signature: public function year()
  • Returns: integer The year part of the date.