File manager - Edit - /home/proidvn/me.proid.vn/wp-content/plugins/mailin/wonderpush-php-lib/lib/Util/TimeUtil.php
Back
<?php namespace WonderPush\Util; if (count(get_included_files()) === 1) { http_response_code(403); exit(); } // Prevent direct access /** * Utility class for time manipulation. */ class TimeUtil { /** * Parse an ISO 8601 date with optional time into a `\DateTime`. * @param string $str * @return \DateTime|null */ public static function parseISO8601DateOptionalTime($str) { // Parse parts $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); if ($rtn !== 1) { return null; } $date = $matches[1]; $time = ArrayUtil::getIfSet($matches, 2, ''); $offset = ArrayUtil::getIfSet($matches, 3, ''); // Fill parts to default unspecified items $date .= substr('1970-01-01', strlen($date)); $time .= substr('00:00:00.000000', strlen($time)); if ($offset === 'Z') $offset = ''; $offset .= substr('+00:00', strlen($offset)); $offset = substr($offset, 0, 6); // second.milliseconds are not supported by the parser // Create fully specified date $str = $date . 'T' . $time . $offset; // Parse the date $parsed = \DateTime::createFromFormat('Y-m-d\TH:i:s.uP', $str); if ($parsed === false) { $parsed = null; } return $parsed; } /** * Converts a `\DateTime` into a unix timestamp in milliseconds. * @param \DateTime $dt * @return integer|null */ public static function getMillisecondTimestampFromDateTime($dt) { if (!($dt instanceof \DateTime)) { return null; } return $dt->getTimestamp() * 1000 + round((int)$dt->format('u') / 1000); } }
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Generation time: 0.14 |
proxy
|
phpinfo
|
Settings