%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/bbw/farmaci/kritik-portale/module/ReviewBase/src/ReviewBase/Model/
Upload File :
Create Path :
Current File : /var/www/html/bbw/farmaci/kritik-portale/module/ReviewBase/src/ReviewBase/Model/UtilityDate.php

<?php
/**
 * Description of UtilityDate
 *
 * @author Florian Koller ( conlabz GmbH ) <florian.koller at conlabz.de>
 */

namespace ReviewBase\Model;

use DateTime;
use DateTimeZone;
use IntlDateFormatter;
use Locale;

class UtilityDate
{
    /**
     * Construct won't be called inside this class and is uncallable from
     * the outside. This prevents instantiating this class.
     * This is by purpose, because we want a static class.
     */
    private function __construct() {}
    
    private static $initialized = false;
    private static $utcTimezone;
    private static $applicationTimezone;
    private static $applicationLocale;
    private static $dateFormatter;
    private static $defaultDateFormat;
    private static $defaultDateTimeFormat;
    private static $defaultDateTimeStorageFormat;
    
    protected static $defaultDateTimeValidationFormat;
    protected static $defaultDateTimeValidationPattern;

    private static function initialize()
    {
        if (self::$initialized)
            return;

        self::$defaultDateFormat = "d.m.Y";
        self::$defaultDateTimeFormat = "d.m.Y H:i:s";
        self::$defaultDateTimeStorageFormat = "Y-m-d H:i:s";
        self::$defaultDateTimeValidationFormat = 'd.m.Y H:i';
        self::$defaultDateTimeValidationPattern = 'd.MM.YYYY H:m'; //used in ZF2-DateTime Validator
        self::$utcTimezone = new DateTimeZone('UTC');
        $applicationTimezone = date_default_timezone_get();
        self::$applicationTimezone = new DateTimeZone($applicationTimezone);
        self::$applicationLocale = Locale::getDefault();
        
        self::$dateFormatter = new IntlDateFormatter(Locale::getDefault(), IntlDateFormatter::MEDIUM, IntlDateFormatter::MEDIUM, $applicationTimezone);
        
        self::$initialized = true;
    }
    
    public static function convertToUTC($datetimeString)
    {
        self::initialize();
        $convertedDateTime = self::convertFromTo($datetimeString, self::$applicationTimezone, self::$utcTimezone);
        return $convertedDateTime;
    }
    
    public static function convertFromUTC($datetimeString)
    {
        self::initialize();
        $convertedDateTime = self::convertFromTo($datetimeString, self::$utcTimezone, self::$applicationTimezone);
        return $convertedDateTime;
    }
    
    public static function getDefaultValidationPattern()
    {
        self::initialize();
        return self::$defaultDateTimeValidationPattern;
    }
    
    public static function getDefaultStorageFormat()
    {
        self::initialize();
        return self::$defaultDateTimeStorageFormat;
    }
    
    public static function getDefaultStorageTimezone()
    {
        self::initialize();
        return self::$utcTimezone;
    }
    
    public static function getDefaultDateFormat()
    {
        self::initialize();
        return self::$defaultDateFormat;
    }
    
    public static function convertTimestampToApplicationTimezone($timestamp)
    {
        self::initialize();
//        if (strpos('@') !== 0)
//        {
//            $timestamp = '@'.$timestamp;
//        }
        $dt = new DateTime();
        $dt->setTimestamp($timestamp);
        $dt->setTimezone(self::$applicationTimezone);
        return $dt;
    }
    
    public static function format(DateTime $dt, $format = null)
    {
        self::initialize();
        if (is_null($format))
        {
            $format = self::$defaultDateTimeValidationFormat;
        }
        $formattedString = $dt->format($format);
        return $formattedString;
    }

    public static function convertFromTo($datetimeString, $fromTimezone, $toTimezone, $format = 'Y-m-d H:i:s')
    {
        self::initialize();
        $convertedDateTime = null;
        if ($datetimeString === "")
        {
            //catch the empty strings
            $datetimeString = null;
        }
        if (!is_null($datetimeString))
        {
            $dt = new DateTime($datetimeString, $fromTimezone);
//            $dt = new DateTime('@'.$datetimeString, $fromTimezone);
            $dt->setTimezone($toTimezone);
            $convertedDateTime = $dt->format($format);
        }
        return $convertedDateTime;
    }
}

?>

Zerion Mini Shell 1.0