2016-12-09 12 views
1

私は数ヶ月で幼児の現在の年齢を表示したい、年齢を計算して年齢を表示するコードを持っているプロジェクトを持っていますが、私はそれを数か月で持ちたいと思っています。これはmiコードです。twig、symfony2を使って月齢を現在の年齢にする方法は?

<td>{% if entity.birthdate %}{{ ('now'|date('Y') - entity.birthdate|date('Y') - 1) + ('now'|date('Y-m-d')|date('U') - entity.birthdate|date('Y-m-d')|date('U') >= 0 ? 1 : 0) }}{% endif %}</td> 

どうぞよろしくお願いします。

+0

月数を合計したい場合は、このようなsmtを行うことができます{%set month = difference.format( '%set month =' date ')}}}}}} {%set month = difference.format(' あなたが確認しなければならない月に残りの日数を数えれば、1日が大きい場合は1、次に1を加算する場合は – CiTNOH

答えて

2

テンプレート/ビューで値を計算するのは魅力的ですが、ロジックとプレゼンテーションを分けることが最善です。

私は赤ちゃんの年齢を表示すると、あなたが将来的に再びたい、それではそれentityentityクラスのすなわち機能)の方法にしましょうかもしれない何かであることを想像してみてください。

{{ date('now').diff((date('2014-1-3'))).format('%y years %m months %d days old') }} 

);

{{ entity.age }} 

私は、あなたも小枝でこれを行うことができますどのように知ることに面白かったので:

// entity.php 
class person 
{ 
    // Assumption: $birthdate is a DateTime object. 
    protected $birthdate; 

    // getAge() outputs something like this: '1 years, 1 months, 8 days old.' 
    public function getAge() 
    { 
     $now = new \DateTime('now'); 
     $age = $this->getBirthdate(); 
     $difference = $now->diff($age); 

     return $difference->format('%y years, %m months, %d days old.'); 
    } 

    public function getBirthdate() 
    { 
     return $this->birthdate; 
    } 

    public function setBirthdate($birthdate) 
    { 
     $this->birthdate = $birthdate; 
     return $this; 
    } 
} 

は、その後、あなたの小枝ファイルにあなたはgetAgeメソッドにアクセスすることができますTry it on twigFiddle

+0

ありがとう、それは非常に便利でした – Roberto

関連する問題