| Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/ |
| Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/TDate.php |
<?php
/*
* @package Tech Fry Library
* @license https://www.gnu.org/licenses/gpl-3.0.en.html
*/
namespace TechFry\Library;
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Date\Date;
class TDate
{
// Output Date: format(), to_unix(), to_rfc822(), to_sql(), to_iso8601()
// Modify Date:
// Joomla Date Object which extends PHP DateTime class
public $jdate;
// Input should be date
public function __construct($date = 'now')
{
$this->jdate = new Date($date);
}
// $data - date
public function process($function, $param = null)
{
// Factory::getApplication()->enqueueMessage($function);
switch ($function)
{
// Create current date
case 'create' :
case 'date_create' :
$result = $this->jdate->format('Y-m-d H:i:s');
break;
// No arguments
case 'getdate' :
case 'time' :
case 'timezone_identifiers_list' :
$result = $function();
break;
// No parameters
case 'toISO8601' :
case 'toRFC822' :
case 'toUnix' :
case 'toSql' :
$result = $this->jdate->$function();
break;
// format
case 'date_format' :
case 'format' :
$result = $this->jdate->format($param);
break;
// modify
case 'date_modify' :
case 'modify' :
$result = $this->jdate->modify($param);
break;
case 'add' :
case 'sub' :
$result = $this->jdate->$function($param); // $param is interval like P5D
break;
}
return $result;
}
// Find number of days between two dates
public function get_days($date1, $date2 = '')
{
if ($date2 == '')
{
$date2 = date('Y-m-d'); // today
}
$difference = abs(strtotime($date2) - strtotime($date1));
$days = $difference/(60 * 60 * 24);
return $days;
}
public function modify($modify)
{
$this->jdate->modify($modify);
}
// Output Date in Particular Format
public function format($format = '')
{
if (empty($format))
{
$format = Text::_('DATE_FORMAT_LC3');
}
return $this->jdate->format($format);
}
public function to_unix()
{
return $this->jdate->toUnix();
}
public function to_rfc822()
{
return $this->jdate->toRFC822();
}
public function to_sql()
{
return $this->jdate->toSql();
}
public function to_iso8601()
{
return $this->jdate->toISO8601();
}
/* JOOMLA DATE FORMATS
DATE_FORMAT_LC="l, d F Y"
DATE_FORMAT_LC1="l, d F Y"
DATE_FORMAT_LC2="l, d F Y H:i"
DATE_FORMAT_LC3="d F Y"
DATE_FORMAT_LC4="Y-m-d"
DATE_FORMAT_LC5="Y-m-d H:i"
DATE_FORMAT_LC6="Y-m-d H:i:s"
DATE_FORMAT_JS1="y-m-d"
DATE_FORMAT_CALENDAR_DATE="%Y-%m-%d"
DATE_FORMAT_CALENDAR_DATETIME="%Y-%m-%d %H:%M:%S"
DATE_FORMAT_FILTER_DATE="Y-m-d"
DATE_FORMAT_FILTER_DATETIME="Y-m-d H:i:s"
*/
/* PARTS OF DATE
Year - Y, y
Month - m, n, F, M
Week - l, D, N, S, W
Day - d, j, z
Hour - H, h, G, g
Minutes - i
Seconds - s
AM/PM - a, A
Milliseconds - u
Days in a Month - t
Leap year - L
*/
/*
DATE INTERVALS
P1D / 1 day
P2W / 2 weeks
P3M / 3 months
P4Y / 4 years
P1Y1D / 1 year + 1 day
P1YT12H / 1 year + 12 hours
PT3600S / 3600 seconds
*/
}