PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 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 All 256 releases
give / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Concerns / InteractsWithDateTime.php

InteractsWithDateTime.php in GiveWP – Donation Plugin and Fundraising Platform 4.17.0, at vendor/vendor-prefixed/stellarwp/licensing-api-client/src/Concerns/InteractsWithDateTime.php

40 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php declare(strict_types=1);
2
3 namespace Give\Vendors\LiquidWeb\LicensingApiClient\Concerns;
4
5 use DateTimeImmutable;
6 use DateTimeZone;
7 use Exception;
8 use Give\Vendors\LiquidWeb\LicensingApiClient\Exceptions\UnexpectedResponseException;
9
10 /**
11 * Provides shared DateTime parsing and UTC formatting helpers.
12 */
13 trait InteractsWithDateTime
14 {
15 /**
16 * @throws UnexpectedResponseException
17 */
18 private static function parseDateTime(string $value): DateTimeImmutable {
19 try {
20 return new DateTimeImmutable($value);
21 } catch (Exception $exception) {
22 throw new UnexpectedResponseException('Invalid date value [' . $value . '].', 0, $exception);
23 }
24 }
25
26 /**
27 * @throws UnexpectedResponseException
28 */
29 private static function parseNullableDateTime(?string $value): ?DateTimeImmutable {
30 return $value === null ? null : self::parseDateTime($value);
31 }
32
33 /**
34 * Format a DateTimeImmutable for the API's UTC RFC3339 wire format.
35 */
36 private function formatDateTime(DateTimeImmutable $dt): string {
37 return $dt->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d\TH:i:s\Z');
38 }
39 }
40