Class: I2CE Date: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 281: Line 281:
* integer $year
* integer $year
===listMonths()===
===listMonths()===
Adds the month values to a {@link I2CE_Template} object.
Adds the month values to a [[Class: I2CE_Template | I2CE_Template]] object.
*Signature: static public function listMonths($template,$selectId)
*Signature: static public function listMonths($template,$selectId)
Parameters:
Parameters:
Line 287: Line 287:
* [http://www.php.net/manual/en/language.types.string.php string ] $selectId<br/>The id of the element in the page to add the selections to.
* [http://www.php.net/manual/en/language.types.string.php string ] $selectId<br/>The id of the element in the page to add the selections to.
===listYears()===
===listYears()===
Adds a sequence of years to a {@link I2CE_Template} object.
Adds a sequence of years to a [[Class: I2CE_Template | 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
It takes two optional arguments to limit the years to use.  The initial year to start with is 1990 and it will end

Revision as of 21:53, 16 October 2009

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

Handles date manipulation. I2CE_Dates are used to manage date and time values for form/HTML display and for interacting with the database.

  • Author: Luke Duncan <lduncan@intrahealth.org>
  • Since: v1.0.0

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 I2CE_Template object.

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

Parameters:

listYears()

Adds a sequence of years to a 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.