PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / nesbot / carbon / src / Carbon / CarbonTimeZone.php
mailpoet / vendor-prefixed / nesbot / carbon / src / Carbon Last commit date
Exceptions 9 months ago Lang 3 years ago List 3 years ago MessageFormatter 2 years ago Traits 9 months ago AbstractTranslator.php 9 months ago Carbon.php 9 months ago CarbonConverterInterface.php 4 years ago CarbonImmutable.php 9 months ago CarbonInterface.php 9 months ago CarbonInterval.php 2 years ago CarbonPeriod.php 9 months ago CarbonPeriodImmutable.php 2 years ago CarbonTimeZone.php 9 months ago Factory.php 9 months ago FactoryImmutable.php 2 years ago Language.php 4 years ago Translator.php 4 years ago TranslatorImmutable.php 9 months ago TranslatorStrongTypeInterface.php 4 years ago index.php 3 years ago
CarbonTimeZone.php
158 lines
1 <?php
2 namespace MailPoetVendor\Carbon;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Carbon\Exceptions\InvalidCastException;
5 use MailPoetVendor\Carbon\Exceptions\InvalidTimeZoneException;
6 use DateTimeInterface;
7 use DateTimeZone;
8 use Throwable;
9 class CarbonTimeZone extends DateTimeZone
10 {
11 public function __construct($timezone = null)
12 {
13 parent::__construct(static::getDateTimeZoneNameFromMixed($timezone));
14 }
15 protected static function parseNumericTimezone($timezone)
16 {
17 if ($timezone <= -100 || $timezone >= 100) {
18 throw new InvalidTimeZoneException('Absolute timezone offset cannot be greater than 100.');
19 }
20 return ($timezone >= 0 ? '+' : '') . \ltrim($timezone, '+') . ':00';
21 }
22 protected static function getDateTimeZoneNameFromMixed($timezone)
23 {
24 if ($timezone === null) {
25 return \date_default_timezone_get();
26 }
27 if (\is_string($timezone)) {
28 $timezone = \preg_replace('/^\\s*([+-]\\d+)(\\d{2})\\s*$/', '$1:$2', $timezone);
29 }
30 if (\is_numeric($timezone)) {
31 return static::parseNumericTimezone($timezone);
32 }
33 return $timezone;
34 }
35 protected static function getDateTimeZoneFromName(&$name)
36 {
37 return @\timezone_open($name = (string) static::getDateTimeZoneNameFromMixed($name));
38 }
39 public function cast(string $className)
40 {
41 if (!\method_exists($className, 'instance')) {
42 if (\is_a($className, DateTimeZone::class, \true)) {
43 return new $className($this->getName());
44 }
45 throw new InvalidCastException("{$className} has not the instance() method needed to cast the date.");
46 }
47 return $className::instance($this);
48 }
49 public static function instance($object = null, $objectDump = null)
50 {
51 $tz = $object;
52 if ($tz instanceof static) {
53 return $tz;
54 }
55 if ($tz === null) {
56 return new static();
57 }
58 if (!$tz instanceof DateTimeZone) {
59 $tz = static::getDateTimeZoneFromName($object);
60 }
61 if ($tz !== \false) {
62 return new static($tz->getName());
63 }
64 if (Carbon::isStrictModeEnabled()) {
65 throw new InvalidTimeZoneException('Unknown or bad timezone (' . ($objectDump ?: $object) . ')');
66 }
67 return \false;
68 }
69 public function getAbbreviatedName($dst = \false)
70 {
71 $name = $this->getName();
72 foreach ($this->listAbbreviations() as $abbreviation => $zones) {
73 foreach ($zones as $zone) {
74 if ($zone['timezone_id'] === $name && $zone['dst'] == $dst) {
75 return $abbreviation;
76 }
77 }
78 }
79 return 'unknown';
80 }
81 public function getAbbr($dst = \false)
82 {
83 return $this->getAbbreviatedName($dst);
84 }
85 public function toOffsetName(?DateTimeInterface $date = null)
86 {
87 return static::getOffsetNameFromMinuteOffset($this->getOffset($date ?: Carbon::now($this)) / 60);
88 }
89 public function toOffsetTimeZone(?DateTimeInterface $date = null)
90 {
91 return new static($this->toOffsetName($date));
92 }
93 public function toRegionName(?DateTimeInterface $date = null, $isDst = 1)
94 {
95 $name = $this->getName();
96 $firstChar = \substr($name, 0, 1);
97 if ($firstChar !== '+' && $firstChar !== '-') {
98 return $name;
99 }
100 $date = $date ?: Carbon::now($this);
101 // Integer construction no longer supported since PHP 8
102 // @codeCoverageIgnoreStart
103 try {
104 $offset = @$this->getOffset($date) ?: 0;
105 } catch (Throwable $e) {
106 $offset = 0;
107 }
108 // @codeCoverageIgnoreEnd
109 $name = @\timezone_name_from_abbr('', $offset, $isDst);
110 if ($name) {
111 return $name;
112 }
113 foreach (\timezone_identifiers_list() as $timezone) {
114 if (Carbon::instance($date)->tz($timezone)->getOffset() === $offset) {
115 return $timezone;
116 }
117 }
118 return \false;
119 }
120 public function toRegionTimeZone(?DateTimeInterface $date = null)
121 {
122 $tz = $this->toRegionName($date);
123 if ($tz !== \false) {
124 return new static($tz);
125 }
126 if (Carbon::isStrictModeEnabled()) {
127 throw new InvalidTimeZoneException('Unknown timezone for offset ' . $this->getOffset($date ?: Carbon::now($this)) . ' seconds.');
128 }
129 return \false;
130 }
131 public function __toString()
132 {
133 return $this->getName();
134 }
135 public function getType() : int
136 {
137 return \preg_match('/"timezone_type";i:(\\d)/', \serialize($this), $match) ? (int) $match[1] : 3;
138 }
139 public static function create($object = null)
140 {
141 return static::instance($object);
142 }
143 public static function createFromHourOffset(float $hourOffset)
144 {
145 return static::createFromMinuteOffset($hourOffset * Carbon::MINUTES_PER_HOUR);
146 }
147 public static function createFromMinuteOffset(float $minuteOffset)
148 {
149 return static::instance(static::getOffsetNameFromMinuteOffset($minuteOffset));
150 }
151 public static function getOffsetNameFromMinuteOffset(float $minutes) : string
152 {
153 $minutes = \round($minutes);
154 $unsignedMinutes = \abs($minutes);
155 return ($minutes < 0 ? '-' : '+') . \str_pad((string) \floor($unsignedMinutes / 60), 2, '0', \STR_PAD_LEFT) . ':' . \str_pad((string) ($unsignedMinutes % 60), 2, '0', \STR_PAD_LEFT);
156 }
157 }
158