Class: I2CE Date: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 49: Line 49:
The type of I2CE_Date object based on the constant values.
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},
Possible date types are YEAR_ONLY Year, MONTH_DAY Month and Day, DATE Date,
{@link DATE_TIME Date and Time}, and {@link TIME_ONLY Time}.
DATE_TIME Date and Time, and TIME_ONLY Time.
*Type: private nteger $type
*Type: private nteger $type


Line 145: Line 145:
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
===fromDB()===
===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.
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 blank () blank date is returned.  If none of thse formats match the now () current date is returned.
*Signature: static public function fromDB($dateString,$type)
*Signature: static public function fromDB($dateString,$type)
*Parameters:
*Parameters:
Line 265: Line 265:
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
===listMonths()===
===listMonths()===
Adds the month values to a [[Class: I2CE_Template | I2CE_Template]] object.
Adds the month values to a [[Class: I2CE_Template | ]] object.
*Signature: static public function listMonths($template,$selectId)
*Signature: static public function listMonths($template,$selectId)
*Parameters:
*Parameters:
Line 271: Line 271:
** [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 [[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 with the current year.
Adds a sequence of years to a [[Class: 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.
*Signature: static public function listYears($template,$selectId,$start,$end)
*Signature: static public function listYears($template,$selectId,$start,$end)
*Parameters:
*Parameters:

Revision as of 23:08, 16 October 2009

This article desrcibes the class I2CE_Date.

  • Location: Part of the module I2CE in the package I2CE
  • Source: Defined in the file lib/I2CE_Date.php
  • Author: Luke Duncan <lduncan@intrahealth.org>
  • Since: v1.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.

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 YEAR_ONLY Year, MONTH_DAY Month and Day, DATE Date, DATE_TIME Date and Time, and 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.

blank()

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

  • Signature: static public function blank($type)
  • Parameters:
    • integer $type
      The type of date object created. It defaults to date and time.
      • Default Value: self::DATE_TIME
  • Returns: I2CE_Date

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)
  • Parameters:
  • Returns: integer

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.

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 blank () blank date is returned. If none of thse formats match the now () current date is returned.

  • Signature: static public function fromDB($dateString,$type)
  • Parameters:
    • string $dateString
      Date formatted string from MySQL
    • int $type
      Defaults to null in which the type is guessed from the {$dateString}. Otherwise it is one of I2CE_DATE::DATE, I2CE_DATE::YEAR_ONLY, etc.
      • Default Value: null
  • Returns: I2CE_Date

getDate()

Creates a date object of the type Date.

  • Signature: static public function getDate($day,$month,$year)
  • 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
  • Returns: I2CE_Date

getDateTime()

Creates a date object of the type Date/Time.

  • Signature: static public function getDateTime($sec,$min,$hour,$day,$month,$year)
  • 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
  • Returns: I2CE_Date

getDay()

Create a date object of the type Month/Day

  • Signature: static public function getDay($day,$month)
  • 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
  • Returns: I2CE_Date

getMonthName()

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

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

getTime()

Creates a date object of the type Time.

  • Signature: static public function getTime($sec,$min,$hour)
  • 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
  • Returns: I2CE_Date

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)
  • Parameters:
    • integer $year
      Sets the year to be used.
      • Default Value: -1
  • Returns: I2CE_Date

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)
  • Parameters:
    • integer $day
  • Returns: boolean

isHour()

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

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

isMinute()

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

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

isMonth()

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

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

isSecond()

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

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

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)
  • Parameters:
    • integer $year
  • Returns: boolean

listMonths()

Adds the month values to a object.

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

listYears()

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

  • 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. @see I2CE_Template::setData()
      • 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.

  • Signature: static public function now($type,$time_stamp,$strict)
  • 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 then it should be the same array structture as returned by getdate() or the one returned by I2CE_Date::getValues()
      • Default Value: null
    • mixed $strict
      Defaults to false. If true, does not return now. If 'blank', returns the blank date.
      • Default Value: false
  • Returns: mixed
    I2CE_Date or false if failure on strict mode

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.