%PDF- %PDF-
Direktori : /var/www/html/bbw/farmaci/kritik-portale/module/ReviewBase/src/ReviewBase/Model/ |
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; } } ?>