Add analytics
[bus.git] / busui / owa / modules / base / classes / date.php
blob:a/busui/owa/modules/base/classes/date.php -> blob:b/busui/owa/modules/base/classes/date.php
  <?php
   
  //
  // Open Web Analytics - An Open Source Web Analytics Framework
  //
  // Copyright 2008 Peter Adams. All rights reserved.
  //
  // Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  // $Id$
  //
   
  /**
  * Date Class
  *
  * @author Peter Adams <peter@openwebanalytics.com>
  * @copyright Copyright &copy; 2008 Peter Adams <peter@openwebanalytics.com>
  * @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;
  }
  }
   
   
   
  ?>