. */ namespace Doctrine\DBAL\Types; use Doctrine\DBAL\Platforms\AbstractPlatform; /** * Variable DateTime Type using date_create() instead of DateTime::createFromFormat() * * This type has performance implications as it runs twice as long as the regular * {@see DateTimeType}, however in certain PostgreSQL configurations with * TIMESTAMP(n) columns where n > 0 it is necessary to use this type. * * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.doctrine-project.com * @since 2.0 * @author Benjamin Eberlei * @author Guilherme Blanco * @author Jonathan Wage * @author Roman Borschel */ class VarDateTimeType extends DateTimeType { /** * @throws ConversionException * @param string $value * @param AbstractPlatform $platform * @return \DateTime */ public function convertToPHPValue($value, AbstractPlatform $platform) { if ($value === null || $value instanceof \DateTime) { return $value; } $val = date_create($value); if ( ! $val) { throw ConversionException::conversionFailed($value, $this->getName()); } return $val; } }