我bootstrap-material-datetimepicker在我的 Symfony 表单上使用,因此用户可以选择他的生日。datetimepicker例如返回一个字符串"Saturday 16 May 2020"。我想age从那个字符串生日计算用户的(整数)!如何计算年龄?有没有办法让日期时间返回日期或 int 而不是字符串?我的表格代码:{% extends 'base.html.twig' %}{% block body %} {{ form_start(form, {attr: {novalidate: 'novalidate'}}) }} <div class="form-line"> {{ form_widget(form.birthday, {'attr': {'class': 'datepicker form-control', 'placeholder': 'Date of Birth'} }) }} </div> {{ form_rest(form) }} {{ form_end(form) }} {% endblock %}实体代码:/** * @ORM\Column(type="string", nullable=true) */private $birthday;public function getBirthday(): ?string{ return $this->birthday;}public function setBirthday(?string $birthday): self{ $this->birthday = $birthday; return $this;}
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
你有2个选择:
将生日更改为日期时间类型的字段,并在表单中使用 BirthdayType。
->format('Y-m-d')
然后,当您想在控制器中将其显示为字符串或使用 twig 的过滤器时,您必须格式化该字段,|date('Y-m-d')
因为这$user->getBirthday()
将返回一个 DateTime 对象。当您想要计算年龄(即:)时,从该字段中的字符串创建一个新的 DateTime 对象
new \DateTime($user->getBirthday()
。
diff()
当您拥有 DateTime 对象时,您所需要做的就是为“今天”创建一个新对象,并使用 DateTime 对象的方法或 PHP 的函数计算与那里的差异date_diff()
。
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消