setTimezone(self::getUtc()); } return parent::convertToDatabaseValue($value, $platform); } public static function getUtc(): \DateTimeZone { if (self::$utc === null) { self::$utc = new \DateTimeZone('UTC'); } return self::$utc; } /** * @param mixed $value * @throws ConversionException */ public function convertToPHPValue($value, AbstractPlatform $platform): ?\DateTime { if (null === $value || $value instanceof \DateTime) { return $value; } if (\is_string($value)) { $converted = \DateTime::createFromFormat( $platform->getDateTimeFormatString(), $value, self::getUtc() ); if ($converted !== false) { return $converted; } } throw ConversionException::conversionFailedFormat( $value, Types::DATETIME_MUTABLE, $platform->getDateTimeFormatString() ); } }