|
<?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 © 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; |
|
} |
|
} |
|
|
|
|
|
|
|
?> |