Neos\FluidAdaptor\ViewHelpers\Format\DateViewHelper::render PHP Method

render() public method

Render the supplied DateTime object as a formatted date.
public render ( mixed $date = null, string $format = 'Y-m-d', string $localeFormatType = null, string $localeFormatLength = null, string $cldrFormat = null ) : string
$date mixed either a \DateTime object or a string that is accepted by \DateTime constructor
$format string Format String which is taken to format the Date/Time if none of the locale options are set.
$localeFormatType string Whether to format (according to locale set in $forceLocale) date, time or datetime. Must be one of Neos\Flow\I18n\Cldr\Reader\DatesReader::FORMAT_TYPE_*'s constants.
$localeFormatLength string Format length if locale set in $forceLocale. Must be one of Neos\Flow\I18n\Cldr\Reader\DatesReader::FORMAT_LENGTH_*'s constants.
$cldrFormat string Format string in CLDR format (see http://cldr.unicode.org/translation/date-time)
return string Formatted date
    public function render($date = null, $format = 'Y-m-d', $localeFormatType = null, $localeFormatLength = null, $cldrFormat = null)
    {
        if ($date === null) {
            $date = $this->renderChildren();
            if ($date === null) {
                return '';
            }
        }
        if (!$date instanceof \DateTimeInterface) {
            try {
                $date = new \DateTime($date);
            } catch (\Exception $exception) {
                throw new ViewHelperException('"' . $date . '" could not be parsed by \\DateTime constructor.', 1241722579, $exception);
            }
        }
        $useLocale = $this->getLocale();
        if ($useLocale !== null) {
            try {
                if ($cldrFormat !== null) {
                    $output = $this->datetimeFormatter->formatDateTimeWithCustomPattern($date, $cldrFormat, $useLocale);
                } else {
                    $output = $this->datetimeFormatter->format($date, $useLocale, array($localeFormatType, $localeFormatLength));
                }
            } catch (I18nException $exception) {
                throw new ViewHelperException(sprintf('An error occurred while trying to format the given date/time: "%s"', $exception->getMessage()), 1342610987, $exception);
            }
        } else {
            $output = $date->format($format);
        }
        return $output;
    }

Usage Example

 /**
  * @test
  * @expectedException \Neos\FluidAdaptor\Core\ViewHelper\Exception
  */
 public function viewHelperThrowsExceptionIfDateStringCantBeParsed()
 {
     $viewHelper = new Format\DateViewHelper();
     $viewHelper->render('foo');
 }
DateViewHelper