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 / Traits / Units.php
mailpoet / vendor-prefixed / nesbot / carbon / src / Carbon / Traits Last commit date
Boundaries.php 4 years ago Cast.php 4 years ago Comparison.php 2 years ago Converter.php 2 years ago Creator.php 2 years ago Date.php 9 months ago DeprecatedProperties.php 4 years ago Difference.php 2 years ago IntervalRounding.php 2 years ago IntervalStep.php 4 years ago Localization.php 9 months ago Macro.php 4 years ago MagicParameter.php 2 years ago Mixin.php 2 years ago Modifiers.php 4 years ago Mutability.php 4 years ago ObjectInitialisation.php 4 years ago Options.php 2 years ago Rounding.php 2 years ago Serialization.php 2 years ago Test.php 9 months ago Timestamp.php 1 year ago ToStringFormat.php 3 years ago Units.php 2 years ago Week.php 4 years ago index.php 3 years ago
Units.php
234 lines
1 <?php
2 namespace MailPoetVendor\Carbon\Traits;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Carbon\CarbonConverterInterface;
5 use MailPoetVendor\Carbon\CarbonInterface;
6 use MailPoetVendor\Carbon\CarbonInterval;
7 use MailPoetVendor\Carbon\Exceptions\UnitException;
8 use Closure;
9 use DateInterval;
10 use MailPoetVendor\DateMalformedStringException;
11 use ReturnTypeWillChange;
12 trait Units
13 {
14 public function addRealUnit($unit, $value = 1)
15 {
16 switch ($unit) {
17 // @call addRealUnit
18 case 'micro':
19 // @call addRealUnit
20 case 'microsecond':
21 $diff = $this->microsecond + $value;
22 $time = $this->getTimestamp();
23 $seconds = (int) \floor($diff / static::MICROSECONDS_PER_SECOND);
24 $time += $seconds;
25 $diff -= $seconds * static::MICROSECONDS_PER_SECOND;
26 $microtime = \str_pad((string) $diff, 6, '0', \STR_PAD_LEFT);
27 $tz = $this->tz;
28 return $this->tz('UTC')->modify("@{$time}.{$microtime}")->tz($tz);
29 // @call addRealUnit
30 case 'milli':
31 // @call addRealUnit
32 case 'millisecond':
33 return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND);
34 // @call addRealUnit
35 case 'second':
36 break;
37 // @call addRealUnit
38 case 'minute':
39 $value *= static::SECONDS_PER_MINUTE;
40 break;
41 // @call addRealUnit
42 case 'hour':
43 $value *= static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
44 break;
45 // @call addRealUnit
46 case 'day':
47 $value *= static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
48 break;
49 // @call addRealUnit
50 case 'week':
51 $value *= static::DAYS_PER_WEEK * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
52 break;
53 // @call addRealUnit
54 case 'month':
55 $value *= 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
56 break;
57 // @call addRealUnit
58 case 'quarter':
59 $value *= static::MONTHS_PER_QUARTER * 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
60 break;
61 // @call addRealUnit
62 case 'year':
63 $value *= 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
64 break;
65 // @call addRealUnit
66 case 'decade':
67 $value *= static::YEARS_PER_DECADE * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
68 break;
69 // @call addRealUnit
70 case 'century':
71 $value *= static::YEARS_PER_CENTURY * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
72 break;
73 // @call addRealUnit
74 case 'millennium':
75 $value *= static::YEARS_PER_MILLENNIUM * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
76 break;
77 default:
78 if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {
79 throw new UnitException("Invalid unit for real timestamp add/sub: '{$unit}'");
80 }
81 return $this;
82 }
83 return $this->setTimestamp((int) ($this->getTimestamp() + $value));
84 }
85 public function subRealUnit($unit, $value = 1)
86 {
87 return $this->addRealUnit($unit, -$value);
88 }
89 public static function isModifiableUnit($unit)
90 {
91 static $modifiableUnits = [
92 // @call addUnit
93 'millennium',
94 // @call addUnit
95 'century',
96 // @call addUnit
97 'decade',
98 // @call addUnit
99 'quarter',
100 // @call addUnit
101 'week',
102 // @call addUnit
103 'weekday',
104 ];
105 return \in_array($unit, $modifiableUnits, \true) || \in_array($unit, static::$units, \true);
106 }
107 public function rawAdd(DateInterval $interval)
108 {
109 return parent::add($interval);
110 }
111 #[\ReturnTypeWillChange]
112 public function add($unit, $value = 1, $overflow = null)
113 {
114 if (\is_string($unit) && \func_num_args() === 1) {
115 $unit = CarbonInterval::make($unit, [], \true);
116 }
117 if ($unit instanceof CarbonConverterInterface) {
118 return $this->resolveCarbon($unit->convertDate($this, \false));
119 }
120 if ($unit instanceof Closure) {
121 return $this->resolveCarbon($unit($this, \false));
122 }
123 if ($unit instanceof DateInterval) {
124 return parent::add($unit);
125 }
126 if (\is_numeric($unit)) {
127 [$value, $unit] = [$unit, $value];
128 }
129 return $this->addUnit($unit, $value, $overflow);
130 }
131 public function addUnit($unit, $value = 1, $overflow = null)
132 {
133 $originalArgs = \func_get_args();
134 $date = $this;
135 if (!\is_numeric($value) || !(float) $value) {
136 return $date->isMutable() ? $date : $date->avoidMutation();
137 }
138 $unit = self::singularUnit($unit);
139 $metaUnits = ['millennium' => [static::YEARS_PER_MILLENNIUM, 'year'], 'century' => [static::YEARS_PER_CENTURY, 'year'], 'decade' => [static::YEARS_PER_DECADE, 'year'], 'quarter' => [static::MONTHS_PER_QUARTER, 'month']];
140 if (isset($metaUnits[$unit])) {
141 [$factor, $unit] = $metaUnits[$unit];
142 $value *= $factor;
143 }
144 if ($unit === 'weekday') {
145 $weekendDays = static::getWeekendDays();
146 if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) {
147 $absoluteValue = \abs($value);
148 $sign = $value / \max(1, $absoluteValue);
149 $weekDaysCount = 7 - \min(6, \count(\array_unique($weekendDays)));
150 $weeks = \floor($absoluteValue / $weekDaysCount);
151 for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) {
152 $date = $date->addDays($sign);
153 while (\in_array($date->dayOfWeek, $weekendDays, \true)) {
154 $date = $date->addDays($sign);
155 }
156 }
157 $value = $weeks * $sign;
158 $unit = 'week';
159 }
160 $timeString = $date->toTimeString();
161 } elseif ($canOverflow = \in_array($unit, ['month', 'year']) && ($overflow === \false || $overflow === null && ($ucUnit = \ucfirst($unit) . 's') && !($this->{'local' . $ucUnit . 'Overflow'} ?? static::{'shouldOverflow' . $ucUnit}()))) {
162 $day = $date->day;
163 }
164 $value = (int) $value;
165 if ($unit === 'milli' || $unit === 'millisecond') {
166 $unit = 'microsecond';
167 $value *= static::MICROSECONDS_PER_MILLISECOND;
168 }
169 // Work-around for bug https://bugs.php.net/bug.php?id=75642
170 if ($unit === 'micro' || $unit === 'microsecond') {
171 $microseconds = $this->micro + $value;
172 $second = (int) \floor($microseconds / static::MICROSECONDS_PER_SECOND);
173 $microseconds %= static::MICROSECONDS_PER_SECOND;
174 if ($microseconds < 0) {
175 $microseconds += static::MICROSECONDS_PER_SECOND;
176 }
177 $date = $date->microseconds($microseconds);
178 $unit = 'second';
179 $value = $second;
180 }
181 try {
182 $date = $date->modify("{$value} {$unit}");
183 if (isset($timeString)) {
184 $date = $date->setTimeFromTimeString($timeString);
185 } elseif (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) {
186 $date = $date->modify('last day of previous month');
187 }
188 } catch (DateMalformedStringException $ignoredException) {
189 // @codeCoverageIgnore
190 $date = null;
191 // @codeCoverageIgnore
192 }
193 if (!$date) {
194 throw new UnitException('Unable to add unit ' . \var_export($originalArgs, \true));
195 }
196 return $date;
197 }
198 public function subUnit($unit, $value = 1, $overflow = null)
199 {
200 return $this->addUnit($unit, -$value, $overflow);
201 }
202 public function rawSub(DateInterval $interval)
203 {
204 return parent::sub($interval);
205 }
206 #[\ReturnTypeWillChange]
207 public function sub($unit, $value = 1, $overflow = null)
208 {
209 if (\is_string($unit) && \func_num_args() === 1) {
210 $unit = CarbonInterval::make($unit, [], \true);
211 }
212 if ($unit instanceof CarbonConverterInterface) {
213 return $this->resolveCarbon($unit->convertDate($this, \true));
214 }
215 if ($unit instanceof Closure) {
216 return $this->resolveCarbon($unit($this, \true));
217 }
218 if ($unit instanceof DateInterval) {
219 return parent::sub($unit);
220 }
221 if (\is_numeric($unit)) {
222 [$value, $unit] = [$unit, $value];
223 }
224 return $this->addUnit($unit, -(float) $value, $overflow);
225 }
226 public function subtract($unit, $value = 1, $overflow = null)
227 {
228 if (\is_string($unit) && \func_num_args() === 1) {
229 $unit = CarbonInterval::make($unit, [], \true);
230 }
231 return $this->sub($unit, $value, $overflow);
232 }
233 }
234