【发布时间】:2018-07-16 04:23:25
【问题描述】:
我想将列的表:created_on 从 DateTime 类型转换为 Bigint 类型。
这样它将当前的日期时间值保存到 MySQL 数据库表中。
在我尝试调用方法时从控制器
$smiledMoment->setCreatedValues();
在我的实体文件中:
/**
* @param integer $created_on
*
* @ORM\Column(name="created_on", type="bigint")
*/
protected $created_on;
/**
* Set created_on
*
* @param integer $created_on
* @return SmiledMoment
*/
public function setCreatedOn($created_on)
{
$datetime = (array) $created_on;
$dat = strtotime($datetime['date']);
//echo $dat->format('d/m/Y');
//exit;
$this->created_on = $dat;
return $this;
}
/**
* Get created_on
*
* @return \DateTime
*/
public function getCreatedOn()
{
return $this->created_on;
}
/**
* Set initial value for created_on/modified_on values
*
* @ORM\PrePersist
*/
public function setCreatedValues()
{
$this->setCreatedOn(new \DateTime());
}
从 $dat 值生成为 1517900080(即时间戳值)。
但不幸的是,我遇到了一个错误
UTCDateTimeType.php 第 25 行中的 FatalThrowableError:调用成员 整数上的函数 getTimezone()
【问题讨论】:
-
这似乎是
timestamp而不是datetime。 -
@AmitMerchant 是的!即Unix时间戳
-
所以,您可能想先将其转换为
datetime。 -
getCreatedOn声称它正在返回DateTime但在您的代码中它将返回BigInt。所以无法调整时区。 -
@hcoat 您能帮我编写这方面的代码吗?
标签: php symfony datetime timezone orocrm