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
--- a/busui/owa/modules/base/classes/date.php
+++ b/busui/owa/modules/base/classes/date.php
@@ -1,1 +1,143 @@
+<?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;
+	}
+}
+
+
+
+?>