PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider / DateTime.php
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider Last commit date
ar_EG 2 years ago ar_JO 2 years ago ar_SA 2 years ago at_AT 2 years ago bg_BG 2 years ago bn_BD 2 years ago cs_CZ 2 years ago da_DK 2 years ago de_AT 2 years ago de_CH 2 years ago de_DE 2 years ago el_CY 2 years ago el_GR 2 years ago en_AU 2 years ago en_CA 2 years ago en_GB 2 years ago en_HK 2 years ago en_IN 2 years ago en_NG 2 years ago en_NZ 2 years ago en_PH 2 years ago en_SG 2 years ago en_UG 2 years ago en_US 2 years ago en_ZA 2 years ago es_AR 2 years ago es_ES 2 years ago es_PE 2 years ago es_VE 2 years ago et_EE 2 years ago fa_IR 2 years ago fi_FI 2 years ago fr_BE 2 years ago fr_CA 2 years ago fr_CH 2 years ago fr_FR 2 years ago he_IL 2 years ago hr_HR 2 years ago hu_HU 2 years ago hy_AM 2 years ago id_ID 2 years ago is_IS 2 years ago it_CH 2 years ago it_IT 2 years ago ja_JP 2 years ago ka_GE 2 years ago kk_KZ 2 years ago ko_KR 2 years ago lt_LT 2 years ago lv_LV 2 years ago me_ME 2 years ago mn_MN 2 years ago ms_MY 2 years ago nb_NO 2 years ago ne_NP 2 years ago nl_BE 2 years ago nl_NL 2 years ago pl_PL 2 years ago pt_BR 2 years ago pt_PT 2 years ago ro_MD 2 years ago ro_RO 2 years ago ru_RU 2 years ago sk_SK 2 years ago sl_SI 2 years ago sr_Cyrl_RS 2 years ago sr_Latn_RS 2 years ago sr_RS 2 years ago sv_SE 2 years ago th_TH 2 years ago tr_TR 2 years ago uk_UA 2 years ago vi_VN 2 years ago zh_CN 2 years ago zh_TW 2 years ago Address.php 2 years ago Barcode.php 2 years ago Base.php 2 years ago Biased.php 2 years ago Color.php 2 years ago Company.php 2 years ago DateTime.php 2 years ago File.php 2 years ago HtmlLorem.php 2 years ago Image.php 2 years ago Internet.php 2 years ago Lorem.php 2 years ago Medical.php 2 years ago Miscellaneous.php 2 years ago Payment.php 2 years ago Person.php 2 years ago PhoneNumber.php 2 years ago Text.php 2 years ago UserAgent.php 2 years ago Uuid.php 2 years ago
DateTime.php
390 lines
1 <?php
2 /**
3 * @license MIT
4 *
5 * Modified by impress-org on 23-January-2024 using Strauss.
6 * @see https://github.com/BrianHenryIE/strauss
7 */
8
9 namespace Give\Vendors\Faker\Provider;
10
11 class DateTime extends Base
12 {
13 protected static $century = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI'];
14
15 protected static $defaultTimezone = null;
16
17 /**
18 * @param \DateTime|float|int|string $max
19 *
20 * @return false|int
21 */
22 protected static function getMaxTimestamp($max = 'now')
23 {
24 if (is_numeric($max)) {
25 return (int) $max;
26 }
27
28 if ($max instanceof \DateTime) {
29 return $max->getTimestamp();
30 }
31
32 return strtotime(empty($max) ? 'now' : $max);
33 }
34
35 /**
36 * Get a timestamp between January 1, 1970, and now
37 *
38 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
39 *
40 * @return int
41 *
42 * @example 1061306726
43 */
44 public static function unixTime($max = 'now')
45 {
46 return self::numberBetween(0, static::getMaxTimestamp($max));
47 }
48
49 /**
50 * Get a datetime object for a date between January 1, 1970 and now
51 *
52 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
53 * @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
54 *
55 * @return \DateTime
56 *
57 * @see http://php.net/manual/en/timezones.php
58 * @see http://php.net/manual/en/function.date-default-timezone-get.php
59 *
60 * @example DateTime('2005-08-16 20:39:21')
61 */
62 public static function dateTime($max = 'now', $timezone = null)
63 {
64 return static::setTimezone(
65 new \DateTime('@' . static::unixTime($max)),
66 $timezone
67 );
68 }
69
70 /**
71 * Get a datetime object for a date between January 1, 001 and now
72 *
73 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
74 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
75 *
76 * @return \DateTime
77 *
78 * @see http://php.net/manual/en/timezones.php
79 * @see http://php.net/manual/en/function.date-default-timezone-get.php
80 *
81 * @example DateTime('1265-03-22 21:15:52')
82 */
83 public static function dateTimeAD($max = 'now', $timezone = null)
84 {
85 $min = (PHP_INT_SIZE > 4 ? -62135597361 : -PHP_INT_MAX);
86
87 return static::setTimezone(
88 new \DateTime('@' . self::numberBetween($min, static::getMaxTimestamp($max))),
89 $timezone
90 );
91 }
92
93 /**
94 * get a date string formatted with ISO8601
95 *
96 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
97 *
98 * @return string
99 *
100 * @example '2003-10-21T16:05:52+0000'
101 */
102 public static function iso8601($max = 'now')
103 {
104 return static::date(\DateTime::ISO8601, $max);
105 }
106
107 /**
108 * Get a date string between January 1, 1970 and now
109 *
110 * @param string $format
111 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
112 *
113 * @return string
114 *
115 * @example '2008-11-27'
116 */
117 public static function date($format = 'Y-m-d', $max = 'now')
118 {
119 return static::dateTime($max)->format($format);
120 }
121
122 /**
123 * Get a time string (24h format by default)
124 *
125 * @param string $format
126 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
127 *
128 * @return string
129 *
130 * @example '15:02:34'
131 */
132 public static function time($format = 'H:i:s', $max = 'now')
133 {
134 return static::dateTime($max)->format($format);
135 }
136
137 /**
138 * Get a DateTime object based on a random date between two given dates.
139 * Accepts date strings that can be recognized by strtotime().
140 *
141 * @param \DateTime|string $startDate Defaults to 30 years ago
142 * @param \DateTime|string $endDate Defaults to "now"
143 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
144 *
145 * @return \DateTime
146 *
147 * @see http://php.net/manual/en/timezones.php
148 * @see http://php.net/manual/en/function.date-default-timezone-get.php
149 *
150 * @example DateTime('1999-02-02 11:42:52')
151 */
152 public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null)
153 {
154 $startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate);
155 $endTimestamp = static::getMaxTimestamp($endDate);
156
157 if ($startTimestamp > $endTimestamp) {
158 throw new \InvalidArgumentException('Start date must be anterior to end date.');
159 }
160
161 $timestamp = self::numberBetween($startTimestamp, $endTimestamp);
162
163 return static::setTimezone(
164 new \DateTime('@' . $timestamp),
165 $timezone
166 );
167 }
168
169 /**
170 * Get a DateTime object based on a random date between one given date and
171 * an interval
172 * Accepts date string that can be recognized by strtotime().
173 *
174 * @param \DateTime|string $date Defaults to 30 years ago
175 * @param string $interval Defaults to 5 days after
176 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
177 *
178 * @return \DateTime
179 *
180 * @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days')
181 *
182 * @see http://php.net/manual/en/timezones.php
183 * @see http://php.net/manual/en/function.date-default-timezone-get.php
184 */
185 public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null)
186 {
187 $intervalObject = \DateInterval::createFromDateString($interval);
188 $datetime = $date instanceof \DateTime ? $date : new \DateTime($date);
189 $otherDatetime = clone $datetime;
190 $otherDatetime->add($intervalObject);
191
192 $begin = min($datetime, $otherDatetime);
193 $end = $datetime === $begin ? $otherDatetime : $datetime;
194
195 return static::dateTimeBetween(
196 $begin,
197 $end,
198 $timezone
199 );
200 }
201
202 /**
203 * Get a date time object somewhere within a century.
204 *
205 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
206 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
207 *
208 * @return \DateTime
209 */
210 public static function dateTimeThisCentury($max = 'now', $timezone = null)
211 {
212 return static::dateTimeBetween('-100 year', $max, $timezone);
213 }
214
215 /**
216 * Get a date time object somewhere within a decade.
217 *
218 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
219 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
220 *
221 * @return \DateTime
222 */
223 public static function dateTimeThisDecade($max = 'now', $timezone = null)
224 {
225 return static::dateTimeBetween('-10 year', $max, $timezone);
226 }
227
228 /**
229 * Get a date time object somewhere inside the current year.
230 *
231 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
232 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
233 *
234 * @return \DateTime
235 */
236 public static function dateTimeThisYear($max = 'now', $timezone = null)
237 {
238 return static::dateTimeBetween('first day of january this year', $max, $timezone);
239 }
240
241 /**
242 * Get a date time object somewhere within a month.
243 *
244 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
245 * @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
246 *
247 * @return \DateTime
248 */
249 public static function dateTimeThisMonth($max = 'now', $timezone = null)
250 {
251 return static::dateTimeBetween('-1 month', $max, $timezone);
252 }
253
254 /**
255 * Get a string containing either "am" or "pm".
256 *
257 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
258 *
259 * @return string
260 *
261 * @example 'am'
262 */
263 public static function amPm($max = 'now')
264 {
265 return static::dateTime($max)->format('a');
266 }
267
268 /**
269 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
270 *
271 * @return string
272 *
273 * @example '22'
274 */
275 public static function dayOfMonth($max = 'now')
276 {
277 return static::dateTime($max)->format('d');
278 }
279
280 /**
281 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
282 *
283 * @return string
284 *
285 * @example 'Tuesday'
286 */
287 public static function dayOfWeek($max = 'now')
288 {
289 return static::dateTime($max)->format('l');
290 }
291
292 /**
293 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
294 *
295 * @return string
296 *
297 * @example '7'
298 */
299 public static function month($max = 'now')
300 {
301 return static::dateTime($max)->format('m');
302 }
303
304 /**
305 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
306 *
307 * @return string
308 *
309 * @example 'September'
310 */
311 public static function monthName($max = 'now')
312 {
313 return static::dateTime($max)->format('F');
314 }
315
316 /**
317 * @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
318 *
319 * @return string
320 *
321 * @example '1987'
322 */
323 public static function year($max = 'now')
324 {
325 return static::dateTime($max)->format('Y');
326 }
327
328 /**
329 * @return string
330 *
331 * @example 'XVII'
332 */
333 public static function century()
334 {
335 return static::randomElement(static::$century);
336 }
337
338 /**
339 * @return string
340 *
341 * @example 'Europe/Paris'
342 */
343 public static function timezone()
344 {
345 return static::randomElement(\DateTimeZone::listIdentifiers());
346 }
347
348 /**
349 * Internal method to set the time zone on a DateTime.
350 *
351 * @param string|null $timezone
352 *
353 * @return \DateTime
354 */
355 private static function setTimezone(\DateTime $dt, $timezone)
356 {
357 return $dt->setTimezone(new \DateTimeZone(static::resolveTimezone($timezone)));
358 }
359
360 /**
361 * Sets default time zone.
362 *
363 * @param string $timezone
364 */
365 public static function setDefaultTimezone($timezone = null)
366 {
367 static::$defaultTimezone = $timezone;
368 }
369
370 /**
371 * Gets default time zone.
372 *
373 * @return string|null
374 */
375 public static function getDefaultTimezone()
376 {
377 return static::$defaultTimezone;
378 }
379
380 /**
381 * @param string|null $timezone
382 *
383 * @return string|null
384 */
385 private static function resolveTimezone($timezone)
386 {
387 return (null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone;
388 }
389 }
390