File: /home/confeduphaar/backip-old-files/components/com_jevents/libraries/jeventdate.php
<?php
/**
* JEvents Component for Joomla! 3.x
*
* @version $Id: jeventdate.php 1784 2011-03-14 14:28:13Z geraintedwards $
* @package JEvents
* @copyright Copyright (C) 2008-2020 GWESystems Ltd, 2006-2008 JEvents Project Group
* @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html
* @link http://www.jevents.net
*/
defined('_JEXEC') or die('Restricted access');
// TODO replace with JevDate
class JEventDate
{
var $year = null;
var $month = null;
var $day = null;
var $hour = null;
var $minute = null;
var $second = null;
var $dim = null;
function __construct($datetime = '')
{
$time = JevDate::strtotime($datetime);
if ($datetime != "" && $time !== false)
{
$this->date = $time;
$parts = explode(":", date("Y:m:j:G:i:s:t", $this->date));
$this->year = intval($parts[0]);
$this->month = intval($parts[1]);
$this->day = intval($parts[2]);
$this->hour = intval($parts[3]);
$this->minute = intval($parts[4]);
$this->second = intval($parts[5]);
$this->dim = intval($parts[6]);
}
else
{
$this->date = time();
$parts = explode(":", date("Y:m:j:G:i:s:t", $this->date));
$this->year = intval($parts[0]);
$this->month = intval($parts[1]);
$this->day = intval($parts[2]);
$this->hour = 0;
$this->minute = 0;
$this->second = 0;
$this->dim = intval($parts[6]);
}
}
function setDate($year = 0, $month = 0, $day = 0)
{
$this->date = JevDate::mktime(0, 0, 0, $month, $day, $year);
$parts = explode(":", date("Y:m:j:G:i:s:t", $this->date));
$this->year = intval($parts[0]);
$this->month = intval($parts[1]);
$this->day = intval($parts[2]);
$this->hour = intval($parts[3]);
$this->minute = intval($parts[4]);
$this->second = intval($parts[5]);
$this->dim = intval($parts[6]);
}
function get12hrTime()
{
return date("g:ia", $this->date);
}
function get24hrTime()
{
return sprintf('%02d:%02d', $this->hour, $this->minute);
}
function toDateURL()
{
return ('year=' . $this->getYear(1)
. '&month=' . $this->getMonth(1)
. '&day=' . $this->getDay(1)
);
}
function getYear($asString = false)
{
return $asString ? sprintf('%04d', $this->year) : $this->year;
}
function getMonth($asString = false)
{
return $asString ? sprintf('%02d', $this->month) : $this->month;
}
function getDay($asString = false)
{
return $asString ? sprintf('%02d', $this->day) : $this->day;
}
/**
* Utility function for calculating the days in the month
*
* If no parameters are supplied then it uses the current date
* if 'this' object does not exist
*
* @param int The month
* @param int The year
*/
function daysInMonth($month = 0, $year = 0)
{
$month = intval($month);
$year = intval($year);
if (!$month)
{
if (isset($this))
{
$month = $this->month;
}
else
{
$month = date('m');
}
}
if (!$year)
{
if (isset($this))
{
$year = $this->year;
}
else
{
$year = date('Y');
}
};
return intval(date("t", JevDate::mktime(0, 0, 0, $month, 1, $year)));
}
/**
* Adds (+/-) a number of months to the current date.
*
* @param int Positive or negative number of months
*/
function addMonths($n = 0)
{
// correct for months where number of days is shorter than source month)
$dim = intval(date("t", JevDate::mktime(0, 0, 0, $this->month + $n, 1, $this->year)));
$this->date = JevDate::mktime($this->hour, $this->minute, $this->second, $this->month + $n, min($this->day, $dim), $this->year);
$parts = explode(":", date("Y:m:j:G:i:s:t", $this->date));
$this->year = intval($parts[0]);
$this->month = intval($parts[1]);
$this->day = intval($parts[2]);
$this->dim = intval($parts[6]);
}
function addDays($n = 0)
{
$this->date = JevDate::mktime($this->hour, $this->minute, $this->second, $this->month, $this->day + $n, $this->year);
$parts = explode(":", date("Y:m:j:G:i:s:t", $this->date));
$this->year = intval($parts[0]);
$this->month = intval($parts[1]);
$this->day = intval($parts[2]);
$this->dim = intval($parts[6]);
}
//function toDays( $day=0, $month=0, $year=0) is no longer needed
// function fromDays( $days ) is no longer needed
} // end class