Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/
Upload File :
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
    
    */
}