首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Symfony2设置日期时DateTime格式错误

用Symfony2设置日期时DateTime格式错误
EN

Stack Overflow用户
提问于 2016-07-27 13:00:43
回答 1查看 534关注 0票数 0

我有需要插入到数据库中的日期值。如果我尝试添加一个简单的字符串:

代码语言:javascript
复制
$user->setUpdatedAt('2015-05-31 05:46:23')

ofc I得到错误,该值必须是DateTime对象。

因此,我创建了datetime对象:

代码语言:javascript
复制
$user->setUpdatedAt(new \DateTime($row[29]))

这就产生了:

代码语言:javascript
复制
object(DateTime)[1052]
  public 'date' => string '2015-05-31 05:46:23' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Paris' (length=12)

但当我想冲水的时候我得到了:

调用非对象上的成员函数格式()

为什么它没有看到它是一个对象,当它清楚的时候呢?

更新:

实体类I--一个简单的FOSUser生成的实体:

代码语言:javascript
复制
/**
 * @var \DateTime
 */
protected $createdAt;

/**
 * @var \DateTime
 */
protected $updatedAt;

/**
 * Sets the last update date.
 *
 * @param \DateTime|null $updatedAt
 *
 * @return User
 */
public function setUpdatedAt(\DateTime $updatedAt = null)
{
    $this->updatedAt = $updatedAt;

    return $this;
}

/**
 * Returns the last update date.
 *
 * @return \DateTime|null
 */
public function getUpdatedAt()
{
    return $this->updatedAt;
}

/**
 * Hook on pre-persist operations.
 */
public function prePersist()
{
    $this->createdAt = new \DateTime();
    $this->updatedAt = new \DateTime();
}
EN

回答 1

Stack Overflow用户

发布于 2016-07-27 13:56:33

原则的日期类型将传入值(当然,如果将字段类型设置为日期、日期时间、日期时间)转换为字符串,并在从db获取时将它们转换回datetime对象。尝试找到正确的类(DateTimeType.php、DateTimeTzType.php、DateType.php,基于您的映射类型)并调试convertToDatabaseValue方法(例如:dump($value);die();),检查即将出现的值。或者使用xdebug,从setter调试到convertToDatabaseValue方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38613729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档