4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Form\Extension\Core\DataTransformer
;
14 use Symfony\Component\Form\DataTransformerInterface
;
15 use Symfony\Component\Form\Exception\UnexpectedTypeException
;
17 abstract class BaseDateTimeTransformer
implements DataTransformerInterface
19 protected static $formats = array(
20 \IntlDateFormatter
::NONE
,
21 \IntlDateFormatter
::FULL
,
22 \IntlDateFormatter
::LONG
,
23 \IntlDateFormatter
::MEDIUM
,
24 \IntlDateFormatter
::SHORT
,
27 protected $inputTimezone;
29 protected $outputTimezone;
34 * @param string $inputTimezone The name of the input timezone
35 * @param string $outputTimezone The name of the output timezone
37 * @throws UnexpectedTypeException if a timezone is not a string
39 public function __construct($inputTimezone = null, $outputTimezone = null)
41 if (!is_string($inputTimezone) && null !== $inputTimezone) {
42 throw new UnexpectedTypeException($inputTimezone, 'string');
45 if (!is_string($outputTimezone) && null !== $outputTimezone) {
46 throw new UnexpectedTypeException($outputTimezone, 'string');
49 $this->inputTimezone
= $inputTimezone ?: date_default_timezone_get();
50 $this->outputTimezone
= $outputTimezone ?: date_default_timezone_get();