1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Platforms\AbstractPlatform;
/**
* My custom datatype.
*/
class MsDateTimeType extends Type
{
const TYPE = 'MsDateTime';
public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
return $platform->getDateTimeTypeDeclarationSQL($fieldDeclaration);
}
public function convertToPHPValue($value, AbstractPlatform $platform)
{
if (!$value) {
return null;
}
if (!is_int($value)) {
$value = strtotime($value);
}
if ($value === false)
return null;
return $value;
}
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
if (!$value) {
return null;
}
if (!is_int($value)) {
$value = strtotime($value);
}
if ($value === false)
return null;
return date($platform->getDateTimeFormatString(), $value);
}
public function getName()
{
return self::TYPE;
}
} |
Partager