PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.21.0
GiveWP – Donation Plugin and Fundraising Platform v3.21.0
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 / src / Framework / Support / Facades / DateTime / TemporalFacade.php
give / src / Framework / Support / Facades / DateTime Last commit date
Temporal.php 1 year ago TemporalFacade.php 1 year ago
TemporalFacade.php
108 lines
1 <?php
2
3 namespace Give\Framework\Support\Facades\DateTime;
4
5 use DateTime;
6 use DateTimeImmutable;
7 use DateTimeInterface;
8 use DateTimeZone;
9 use Exception;
10 use Give\Log\Log;
11
12 /**
13 * @since 2.19.6
14 */
15 class TemporalFacade
16 {
17 /**
18 * @since 2.20.0 minor clean up and add types to signature
19 * @since 2.19.6
20 */
21 public function toDateTime(string $date): DateTimeInterface
22 {
23 return DateTime::createFromFormat('Y-m-d H:i:s', $date, wp_timezone());
24 }
25
26 /**
27 * @since 2.20.0 simplify and add types to signature
28 * @since 2.19.6
29 */
30 public function getCurrentDateTime(): DateTimeInterface
31 {
32 return new DateTime('now', wp_timezone());
33 }
34
35 /**
36 * @since 2.19.6
37 *
38 * @param DateTimeInterface $dateTime
39 *
40 * @return string
41 */
42 public function getFormattedDateTime(DateTimeInterface $dateTime)
43 {
44 return $dateTime->format('Y-m-d H:i:s');
45 }
46
47 /**
48 * @since 2.19.6
49 *
50 * @return string
51 */
52 public function getCurrentFormattedDateForDatabase()
53 {
54 return current_datetime()->format('Y-m-d H:i:s');
55 }
56
57 /**
58 * Immutably returns a new DateTime instance with the microseconds set to 0.
59 *
60 * @since 2.20.0
61 */
62 public function withoutMicroseconds(DateTimeInterface $dateTime)
63 {
64 if ($dateTime instanceof DateTimeImmutable) {
65 return $dateTime->setTime(
66 $dateTime->format('H'),
67 $dateTime->format('i'),
68 $dateTime->format('s')
69 );
70 }
71
72 $newDateTime = clone $dateTime;
73
74 $newDateTime->setTime(
75 $newDateTime->format('H'),
76 $newDateTime->format('i'),
77 $newDateTime->format('s')
78 );
79
80 return $newDateTime;
81 }
82
83 /**
84 * @since 3.20.0
85 */
86 public function getDateTimestamp(string $date, string $timezone = ''): int
87 {
88 try {
89 $timezone = empty($timezone) ? wp_timezone_string() : $timezone;
90 $timezone = new DateTimeZone($timezone);
91 $date = new DateTime($date, $timezone);
92
93 return $date->getTimestamp();
94 } catch (Exception $e) {
95 Log::error(
96 'Failed to parse date string into a timestamp',
97 [
98 'input_date' => $date,
99 'input_timezone' => $timezone,
100 'error_code' => $e->getCode(),
101 'error_message' => $e->getMessage(),
102 ]
103 );
104 return 0;
105 }
106 }
107 }
108