如何从字符串日期计算年龄?
How to calculate age from a string date?
我在我的 Symfony 表单上使用 bootstrap-material-datetimepicker
这样用户就可以 select 他的生日。
datetimepicker
return是一个字符串,例如"Saturday 16 May 2020"
。
我想根据那个字符串生日计算用户(整数)的age
!
如何计算年龄?
有没有办法让日期时间 return 日期或 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;
}
您有 2 个选择:
- 将生日更改为日期时间类型的字段并使用 BirthdayType
在你的表格中。然后,您必须在需要时格式化该字段
在控制器中或使用
->format('Y-m-d')
将其显示为字符串
twig 的 |date('Y-m-d')
过滤器作为 $user->getBirthday()
会给你一个 DateTime 对象。
- 从该字段中的字符串创建一个新的 DateTime 对象
想计算年龄(即:
new \DateTime($user->getBirthday()
)。
有了 DateTime 对象后,您只需为“今天”创建一个新对象,然后使用 DateTime 对象的 diff()
method or PHP's date_diff()
函数计算与那里的差异。
我在我的 Symfony 表单上使用 bootstrap-material-datetimepicker
这样用户就可以 select 他的生日。
datetimepicker
return是一个字符串,例如"Saturday 16 May 2020"
。
我想根据那个字符串生日计算用户(整数)的age
!
如何计算年龄? 有没有办法让日期时间 return 日期或 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;
}
您有 2 个选择:
- 将生日更改为日期时间类型的字段并使用 BirthdayType
在你的表格中。然后,您必须在需要时格式化该字段
在控制器中或使用
->format('Y-m-d')
将其显示为字符串 twig 的|date('Y-m-d')
过滤器作为$user->getBirthday()
会给你一个 DateTime 对象。 - 从该字段中的字符串创建一个新的 DateTime 对象
想计算年龄(即:
new \DateTime($user->getBirthday()
)。
有了 DateTime 对象后,您只需为“今天”创建一个新对象,然后使用 DateTime 对象的 diff()
method or PHP's date_diff()
函数计算与那里的差异。