如何从字符串日期计算年龄?

我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;

}


哈士奇WWW
浏览 103回答 1
1回答

GCT1015

你有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()。
打开App,查看更多内容
随时随地看视频慕课网APP