PHP日期_create()上的细枝异常
我想根据她的生日计算一个选民的年龄,在我的实体中,我创建了这样一个函数PHP日期_create()上的细枝异常,php,symfony,twig,Php,Symfony,Twig,我想根据她的生日计算一个选民的年龄,在我的实体中,我创建了这样一个函数 <td>{{ entity.getAge() }}</td> //www.php public function getAge() { $birthday = $this->birthday; $age = date_diff(date_create($birthday),date_create('today'))->y; return $age; } 我把这个
<td>{{ entity.getAge() }}</td>
//www.php
public function getAge()
{
$birthday = $this->birthday;
$age = date_diff(date_create($birthday),date_create('today'))->y;
return $age;
}
我把这个画成这样
<td>{{ entity.getAge() }}</td>
{{entity.getAge()}
但它显示了以下错误:
“在第32行的DuBundle:voctors:index.html.twig中呈现模板时引发异常(“警告:date_create()预期参数1为字符串,对象给定”)。”
如何纠正这个问题?我在Symfony 1.4中的老项目中使用了这个Php模板,它可以毫无问题地呈现投票者的当前年龄
在旧版Symfony 1.4中,我使用这种方式
<td><?php echo date_diff(date_create($total->birthday), date_create('today'))->y; ?></td>
如果您的
$birth
字段是DateTime
对象,则可以使用以下方法:
public function getAge()
{
if (!$this->birthday) return "";// put here what you want if no birthdayprovided
$now = new \DateTime('now');
return $now->diff($this->birthday)->format("%y");
}
希望此帮助在方法中返回$age->y,您应该有一个整数。date_diff的返回是一个错误,我已经尝试了这个解决方案,但是我得到了这个错误“在呈现模板的过程中引发了一个异常(“警告:DateTime::diff()期望参数1是DateTimeInterface,给定null”)似乎$Birth是null,在这种情况下可以做什么?数据库中的日期格式是“1978-09-05”。因此,在编辑我的orm并将生日字段更改为“日期”类型后,使用您提供的示例代码,我得到以下代码“无法将数据库值“1978-09-05”转换为条令类型的datetime。预期格式:Y-m-d H:I:s”好的,那么数据库中有一个字符串吗?我们可以根据格式转换它,奇怪的是,你的问题中有一个基于对象的错误…@DanielleRoseMabunga检查我的更新,检查Y/m/d是否是正确的日期格式,或者你使用的是不同的格式。希望这有帮助