【问题标题】:Fatal error: Call to a member function format()致命错误:调用成员函数 format()
【发布时间】:2016-03-29 09:41:57
【问题描述】:

我的数据包含这个日期,我想通过脚本 Zend 和 Doctrine 在 Mysql 中插入我收到这条消息错误:

致命错误:在非对象上调用成员函数 format() C:\wamp\www\imprimvert\vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateTimeType.php 第 53 行

'dateCreation' => 字符串'2013-10-24 10:01:03' 'firstDateAssignement' => 字符串''

我该如何解决?

提前致谢

【问题讨论】:

  • 能否提供一些代码?
  • @Dakov 我在我的控制器中使用 $data ['dateCreation'] = $info ['date_creation']
  • @mariroza 您应该使用DateTime 对象作为日期时间字段(答案在我发布的链接中),即new \DateTime($data['dateCreation']);

标签: doctrine-orm zend-framework2


【解决方案1】:

正如@AlexP 已经建议的那样,您可以使用 DateTime 对象:

<?php
$entity->setDateCreation(new \DateTime($data['dateCreation']));

我个人使用DoctrineModule 提供Hydrator 将数据数组转换为对象,这更加优雅:

<?php
$data['dateCreation'];

$hydrator = new DoctrineHydrator($em);

$entity = $hydrator->hydrate($data, new Entity);

$em->persist($entity);

【讨论】:

  • @Dakov 我总是出错,因为有时我只有 dateCreation 2204,有时我有 24/02/2007 和其他时间我有这个:2013-10-24 09:57:49 如何我可以解决这个问题提前谢谢
  • 好吧,你可以使用: $date = DateTime::createFromFormat('Y-m-d H:i:s', '2013-10-24 09:57:49');或 $date = DateTime::createFromFormat('d/m/Y', '24/02/2007');
猜你喜欢
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 2012-09-29
  • 2014-02-05
  • 2014-04-29
  • 2015-09-14
相关资源
最近更新 更多