/** * @param DOMElement[] $value * @param $picture * @param null $language * @return string * @throws InvalidArgumentException */ public static function formatDate($value, $picture, $language = null) { Assert::assertArray($value); Assert::assertSchema($value[0], 'date'); if (self::$dateFormatter === null) { // @codeCoverageIgnoreStart if (extension_loaded('intl')) { self::$dateFormatter = Functions\Formatter\IntlDateTimeFormatter::createWithFlagDate(); } else { self::$dateFormatter = Functions\Formatter\DateTimeFormatter::createWithFlagDate(); } // @codeCoverageIgnoreEnd } if ($language === null) { $locale = self::detectSystemLocale(); } else { $locale = $language; } $date = DateTime::createFromFormat(XsDate::FORMAT, $value[0]->nodeValue); return self::$dateFormatter->format($date, $picture, $locale, 'AD'); }
public function testJanuaryFirst2017Name() { $formatter = IntlDateTimeFormatter::createWithFlagDate(); $this->assertSame('01-01-2017', $formatter->format(new \DateTime('2017-01-01 18:42:34.000000', new \DateTimeZone('UTC')), '[D]-[MNn]-[Y]', 'nl_NL', null)); }