* @copyright Copyright © 2008 Peter Adams * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0 * @category owa * @package owa * @version $Revision$ * @since owa 1.0.0 */ class owa_date { var $yyyymmdd; var $timestamp; var $label; var $label_formal; var $year; var $month; var $day; var $is_leap_year; var $day_of_week; var $day_of_week_label; var $day_of_year; var $day_of_year_label; var $week_of_year; var $hour; var $minute; var $second; var $microsecond; var $meridiem; var $num_days_in_month; var $utc_offset; function __construct() { return; } function set($date, $format = 'yyyymmdd') { switch ($format) { case 'yyyymmdd': $this->yyyymmdd = $date; list($this->year, $this->month, $this->day) = sscanf($date, "%4d%2d%2d"); $this->timestamp = mktime(0, 0, 0, $this->month, $this->day, $this->year); break; case 'timestamp': $this->timestamp = $date; $this->yyyymmdd = date('Ymd', $date); list($this->year, $this->month, $this->day) = sscanf($this->yyyymmdd, "%4d%2d%2d"); break; } $this->utc_offset = date('Z', $this->timestamp); $this->hour = date('H', $this->timestamp); $this->minute = date('i', $this->timestamp); $this->second = date('s', $this->timestamp); $this->microsecond = date('u', $this->timestamp); $this->meridiem = date('a', $this->timestamp); $this->day_of_week = date('w', $this->timestamp); $this->day_of_week_label = date('l', $this->timestamp); $this->week_of_year = date('W', $this->timestamp); $this->day_of_year = date('z', $this->timestamp); $this->num_days_in_month = date('t', $this->timestamp); $this->label = date('m/d/Y', $this->timestamp); $this->label_formal = date('F jS Y', $this->timestamp); } function get($name){ return $this->$name; } function getDay() { return $this->day; } function getMonth() { return $this->month; } function getYear() { return $this->year; } function getLabel($format = '') { if (empty($format)) { $format = 'label'; } else { $format = 'label_'.$format; } return $this->$format; } function getYyyymmdd() { return $this->yyyymmdd; } function getTimestamp() { return $this->timestamp; } function getLocalTimestamp() { return $this->getTimestamp() + $this->utc_offset; } } ?>