/** * @param DOMElement[] $value * @param string $picture * @return string * @throws InvalidArgumentException */ public static function formatDateTime($value, $picture) { Assert::assertArray($value); Assert::assertSchema($value[0], 'dateTime'); $date = DateTimeImmutable::createFromFormat(XsDateTime::FORMAT, $value[0]->nodeValue); return self::formatEvaluatedDateTime($date, $picture, self::FLAG_DATE + self::FLAG_TIME); }
/** * @param $value * @return XsInteger * @throws \Genkgo\Xsl\Xpath\Exception\InvalidArgumentException */ public static function secondsFromDateTime($value) { Assert::assertArray($value); Assert::assertSchema($value[0], 'dateTime'); return new XsInteger((int) (new DateTimeImmutable($value[0]->nodeValue))->format('s')); }
/** * @param DOMElement[] $value * @param string $picture * @param null $language * @return string * @throws InvalidArgumentException */ public static function formatDateTime($value, $picture, $language = null) { Assert::assertArray($value); Assert::assertSchema($value[0], 'dateTime'); if (self::$dateTimeFormatter === null) { // @codeCoverageIgnoreStart if (extension_loaded('intl')) { self::$dateTimeFormatter = Functions\Formatter\IntlDateTimeFormatter::createWithFlagDateTime(); } else { self::$dateTimeFormatter = Functions\Formatter\DateTimeFormatter::createWithFlagDateTime(); } // @codeCoverageIgnoreEnd } if ($language === null) { $locale = self::detectSystemLocale(); } else { $locale = $language; } $date = DateTime::createFromFormat(XsDateTime::FORMAT, $value[0]->nodeValue); return self::$dateTimeFormatter->format($date, $picture, $locale, 'AD'); }
/** * @param $elements * @return DOMDocument */ public static function inScopePrefixes($elements) { Assert::assertArray($elements); $listOfPrefixes = []; foreach ($elements as $element) { $listOfPrefixes = array_merge($listOfPrefixes, array_keys(FetchNamespacesFromNode::fetch($element))); } return XsSequence::fromArray($listOfPrefixes); }