Symfony原则类型日期时间期望格式y-m-d h:i:s


symfony doctrine type datetime expected format y-m-d h:i:s

我有一个问题,symfony当我试图从数据库中选择一些项目与学说。

我运行这个:

$allOrders = $em->getRepository('MyBundle:Dieta')->findBy(array('diet_status'=>'active'));
var_dump($allOrders);

我得到以下错误:

无法将数据库值"2014-03-03"转换为原则类型datetime。期望格式:Y-m-d H:i:s

当我在数据库中插入日期时,我这样做:

$format = 'd/m/Y';
$date = 'DateTime::createFromFormat($format, $_POST['dietStartDate']);
$dietStartDate = $date->format('Y-m-d H:i:s');
$dietStartDate = new 'Datetime($dietStartDate);
$timestamp = strtotime(str_replace('/', '-', $_POST['dietStartDate']));
$timestamp7 = strtotime('+7 days', $timestamp);
$datetime = date("Y-m-d H:i:s", $timestamp7);
$dietDateEnd = new 'Datetime($datetime);

$dietStartDate$dietDateEnd插入到数据库的datetime列中。在教义中。我还将它声明为datetime。

有什么想法吗?

从值"2014-03-03",似乎你的数据库列类型是date而不是datetime

执行php app/console doctrine:schema:update命令查看是否有变化

我有同样的问题,我通过添加下面的代码来解决它这个问题是得到的,因为postgres寄存器微秒当它不同于0时,这产生isse

use Doctrine'DBAL'Types'Type;
Type::overrideType('datetime', 'Doctrine'DBAL'Types'VarDateTimeType');
Type::overrideType('datetimetz', 'Doctrine'DBAL'Types'VarDateTimeType');
Type::overrideType('time', 'Doctrine'DBAL'Types'VarDateTimeType');
Type::overrideType('datetime_immutable', 'Doctrine'DBAL'Types'VarDateTimeImmutableType');
Type::overrideType('datetimetz_immutable', 'Doctrine'DBAL'Types'VarDateTimeImmutableType');
Type::overrideType('time_immutable', 'Doctrine'DBAL'Types'VarDateTimeImmutableType');

你可以在这里阅读更多https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/known-vendor-issues.html