如何在树枝中获得天差

时间:2015-06-15 07:32:58

标签: php symfony twig twig-extension

  • 如何从当天获得天差异。

  • tweetedAt:" 2015-02-22 09:56:42"。

twig

{% for key,value in data.about %}
{% set tweets_date=(value.tweetedAt|date).date("now").format('%a') %}
{% endfor %}

我也试过

{% set dd='now'|date('d-m-Y') %}
{% set tweets_date=(value.tweetedAt|date).dd.format('%a') %}

最后我尝试了但却给出了错误:

  

哈希键必须是带引号的字符串,数字,名称或括在括号中的表达式(意外标记"标点符号"值" {"

{% set difference = {{ date("m/d/Y") }}.diff(date(value.tweetedAt)) %}
{% set leftDays = difference.days %}

错误:

<span class="small light_grey">{{tweets_date}}</span>

Impossible to invoke a method ("date") on a string variable ("June 6, 2015 01:06") in AcmeBundle
  • 如何在几天前从tweet_date获得差异。

通过composer

更新了安装twig/extensions的项目
user@intermsh-OptiPlex-380:~$ composer require twig/extensions
Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.
Using version ~1.2 for twig/extensions
./composer.json has been updated
   Loading composer repositories with package information
   Updating dependencies (including require-dev)
   - Installing twig/twig (v1.18.2)
   Downloading: 100%         

   - Installing twig/extensions (v1.2.0)
   Downloading: 100%         
   Downloading: 100%         

twig/extensions suggests installing symfony/translation (Allow the time_diff output to be translated)
Writing lock file
Generating autoload files

3 个答案:

答案 0 :(得分:11)

我尝试了这段代码并且有效。

{% set difference = date(value.tweetedAt|date('Y/m/d')).diff(date('now'|date('Y/m/d'))) %}
{% set leftDays = difference.days %}

答案 1 :(得分:9)

您需要在对象上使用过滤器而非方法。您需要使用time_diff过滤器:

{%set tweets_date=value.tweetedAt|time_diff %}

要使其正常工作,您需要先通过composer安装twig-extensions:

composer require twig/extensions

然后将其包含在具有适当标记的服务容器中:

services:
    app.twig.extension.date:
        class:        Twig_Extensions_Extension_Date
        tags:
             - { name: 'twig.extension' }

答案 2 :(得分:2)

如果日期来自实体,您可以:

public function getDays()
{
    return $this->date->diff(new DateTime)->format('%a');
}

在你的实体中实施:

row