Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/spomky-labs/pki-framework/src/X509/Feature/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/spomky-labs/pki-framework/src/X509/Feature/DateTimeHelper.php
<?php

declare(strict_types=1);

namespace SpomkyLabs\Pki\X509\Feature;

use DateTimeImmutable;
use DateTimeZone;
use Exception;
use RuntimeException;
use UnexpectedValueException;

/**
 * Helper trait for classes employing date and time handling.
 */
trait DateTimeHelper
{
    /**
     * Create DateTime object from time string and timezone.
     *
     * @param null|string $time Time string, default to 'now'
     * @param null|string $tz Timezone, default if omitted
     */
    private static function createDateTime(?string $time = null, ?string $tz = null): DateTimeImmutable
    {
        if (! isset($time)) {
            $time = 'now';
        }
        if (! isset($tz)) {
            $tz = date_default_timezone_get();
        }
        try {
            $dt = new DateTimeImmutable($time, self::createTimeZone($tz));
            return self::roundDownFractionalSeconds($dt);
        } catch (Exception $e) {
            throw new RuntimeException('Failed to create DateTime:', 0, $e);
        }
    }

    /**
     * Rounds a \DateTimeImmutable value such that fractional seconds are removed.
     */
    private static function roundDownFractionalSeconds(DateTimeImmutable $dt): DateTimeImmutable
    {
        return DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $dt->format('Y-m-d H:i:s'), $dt->getTimezone());
    }

    /**
     * Create DateTimeZone object from string.
     */
    private static function createTimeZone(string $tz): DateTimeZone
    {
        try {
            return new DateTimeZone($tz);
        } catch (Exception $e) {
            throw new UnexpectedValueException('Invalid timezone.', 0, $e);
        }
    }
}

Spamworldpro Mini