ユーザーが誕生日を選択できるように、Symfonyフォームでbootstrap-material-datetimepicker
を使用しています。
datetimepicker
は、"Saturday 16 May 2020"
などの文字列を返します。
その文字列の誕生日からユーザー(整数)のage
を計算したいと思います!
年齢を計算するにはどうすればよいですか?文字列の代わりに日付時刻を日付または整数に戻す方法はありますか?
私のフォームのコード:
{% 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つの選択肢があります。
->format('Y-m-d')
を使用してフィールドを文字列として表示するか、twigの|date('Y-m-d')
フィルタを$user->getBirthday()
で返すことで、フィールドをフォーマットする必要があります。 DateTimeオブジェクト。new \DateTime($user->getBirthday()
)。DateTimeオブジェクトがある場合、必要なのは「今日」の新しいオブジェクトを作成し、DateTimeオブジェクトの diff()
メソッドまたはPHPの date_diff()
関数。