PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.2.0
Brevo – Email, SMS, Web Push, Chat, and more. v3.2.0
2.9.13 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.2 3.1.20 3.1.21 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.1.29 3.1.3 3.1.30 3.1.31 3.1.32 3.1.33 3.1.34 3.1.35 3.1.36 3.1.37 3.1.38 3.1.39 3.1.4 3.1.40 3.1.41 3.1.42 3.1.43 3.1.44 3.1.45 3.1.46 3.1.47 3.1.48 3.1.49 3.1.5 3.1.50 3.1.51 3.1.52 3.1.53 3.1.54 3.1.55 3.1.56 3.1.57 3.1.58 3.1.59 3.1.6 3.1.60 3.1.61 3.1.62 3.1.63 3.1.64 3.1.65 3.1.66 3.1.67 3.1.68 3.1.69 3.1.7 3.1.70 3.1.71 3.1.72 3.1.73 3.1.74 3.1.75 3.1.76 3.1.77 3.1.78 3.1.79 3.1.8 3.1.80 3.1.81 3.1.82 3.1.83 3.1.84 3.1.85 3.1.86 3.1.87 3.1.88 3.1.89 3.1.9 3.1.90 3.1.91 3.1.92 3.1.93 3.1.94 3.1.95 3.1.96 3.1.97 3.1.98 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 trunk 1.0 1.5 2.0.8 2.9.10 2.9.11 2.9.12
mailin / wonderpush-php-lib / lib / Util / TimeUtil.php
mailin / wonderpush-php-lib / lib / Util Last commit date
ArrayUtil.php 1 year ago DefaultLogger.php 1 year ago JsonSerializable.php 1 year ago Logger.php 1 year ago StringUtil.php 1 year ago TimeUnit.php 1 year ago TimeUtil.php 1 year ago TimeValue.php 1 year ago UrlUtil.php 1 year ago
TimeUtil.php
55 lines
1 <?php
2
3 namespace WonderPush\Util;
4
5 if (count(get_included_files()) === 1) { http_response_code(403); exit(); } // Prevent direct access
6
7 /**
8 * Utility class for time manipulation.
9 */
10 class TimeUtil {
11
12 /**
13 * Parse an ISO 8601 date with optional time into a `\DateTime`.
14 * @param string $str
15 * @return \DateTime|null
16 */
17 public static function parseISO8601DateOptionalTime($str) {
18 // Parse parts
19 $rtn = preg_match('/^(\d\d\d\d(?:-\d\d(?:-\d\d)?)?)(?:T(\d\d(?::\d\d(?::\d\d(?:.\d\d\d)?)?)?))?(Z|[+-]\d\d(?::\d\d(?::\d\d(?:.\d\d\d)?)?)?)?$/', $str, $matches);
20 if ($rtn !== 1) {
21 return null;
22 }
23 $date = $matches[1];
24 $time = ArrayUtil::getIfSet($matches, 2, '');
25 $offset = ArrayUtil::getIfSet($matches, 3, '');
26 // Fill parts to default unspecified items
27 $date .= substr('1970-01-01', strlen($date));
28 $time .= substr('00:00:00.000000', strlen($time));
29 if ($offset === 'Z') $offset = '';
30 $offset .= substr('+00:00', strlen($offset));
31 $offset = substr($offset, 0, 6); // second.milliseconds are not supported by the parser
32 // Create fully specified date
33 $str = $date . 'T' . $time . $offset;
34 // Parse the date
35 $parsed = \DateTime::createFromFormat('Y-m-d\TH:i:s.uP', $str);
36 if ($parsed === false) {
37 $parsed = null;
38 }
39 return $parsed;
40 }
41
42 /**
43 * Converts a `\DateTime` into a unix timestamp in milliseconds.
44 * @param \DateTime $dt
45 * @return integer|null
46 */
47 public static function getMillisecondTimestampFromDateTime($dt) {
48 if (!($dt instanceof \DateTime)) {
49 return null;
50 }
51 return $dt->getTimestamp() * 1000 + round((int)$dt->format('u') / 1000);
52 }
53
54 }
55