ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:27:22 2017 +0800
Revision:
44:c1d8923072ba
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 44:c1d8923072ba 1 <?php
TMBOY 44:c1d8923072ba 2
TMBOY 44:c1d8923072ba 3 namespace JsonSchema;
TMBOY 44:c1d8923072ba 4
TMBOY 44:c1d8923072ba 5 class Rfc3339
TMBOY 44:c1d8923072ba 6 {
TMBOY 44:c1d8923072ba 7 const REGEX = '/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(\.\d+)?(Z|([+-]\d{2}):?(\d{2}))/';
TMBOY 44:c1d8923072ba 8
TMBOY 44:c1d8923072ba 9 /**
TMBOY 44:c1d8923072ba 10 * Try creating a DateTime instance
TMBOY 44:c1d8923072ba 11 *
TMBOY 44:c1d8923072ba 12 * @param string $string
TMBOY 44:c1d8923072ba 13 * @return \DateTime|null
TMBOY 44:c1d8923072ba 14 */
TMBOY 44:c1d8923072ba 15 public static function createFromString($string)
TMBOY 44:c1d8923072ba 16 {
TMBOY 44:c1d8923072ba 17 if (!preg_match(self::REGEX, strtoupper($string), $matches)) {
TMBOY 44:c1d8923072ba 18 return null;
TMBOY 44:c1d8923072ba 19 }
TMBOY 44:c1d8923072ba 20
TMBOY 44:c1d8923072ba 21 $dateAndTime = $matches[1];
TMBOY 44:c1d8923072ba 22 $microseconds = $matches[2] ?: '.000000';
TMBOY 44:c1d8923072ba 23 $timeZone = 'Z' !== $matches[3] ? $matches[4] . ':' . $matches[5] : '+00:00';
TMBOY 44:c1d8923072ba 24
TMBOY 44:c1d8923072ba 25 $dateTime = \DateTime::createFromFormat('Y-m-d\TH:i:s.uP', $dateAndTime . $microseconds . $timeZone, new \DateTimeZone('UTC'));
TMBOY 44:c1d8923072ba 26
TMBOY 44:c1d8923072ba 27 return $dateTime ?: null;
TMBOY 44:c1d8923072ba 28 }
TMBOY 44:c1d8923072ba 29 }