Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer::reverseTransform PHP Method

reverseTransform() public method

Transforms a localized date string/array into a normalized date.
public reverseTransform ( string | array $value ) : DateTime
$value string | array Localized date string/array
return DateTime Normalized date
    public function reverseTransform($value)
    {
        if (!is_string($value)) {
            throw new UnexpectedTypeException($value, 'string');
        }

        if ('' === $value) {
            return null;
        }

        $timestamp = $this->getIntlDateFormatter()->parse($value);

        if (intl_get_error_code() != 0) {
            throw new TransformationFailedException(intl_get_error_message());
        }

        // read timestamp into DateTime object - the formatter delivers in UTC
        $dateTime = new \DateTime(sprintf('@%s UTC', $timestamp));

        if ('UTC' !== $this->inputTimezone) {
            try {
                $dateTime->setTimezone(new \DateTimeZone($this->inputTimezone));
            } catch (\Exception $e) {
                throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
            }
        }

        return $dateTime;
    }

Usage Example

 /**
  * @param string $dateRangeString
  *
  * @return null|DateRange
  */
 public function reverseTransform($dateRangeString)
 {
     if (!$dateRangeString) {
         return null;
     }
     $dateRangeArray = explode($this->separator, $dateRangeString);
     $start = $this->dateTimeTransformer->reverseTransform($dateRangeArray[0]);
     $end = $this->dateTimeTransformer->reverseTransform($dateRangeArray[1]);
     return new DateRange($start, $end);
 }
All Usage Examples Of Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer::reverseTransform