2015-06-15 60 views
7

树枝

{% 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') %} 

最后,我试过,但它给错误:

A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "punctuation" of value "{"

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

尔ROR:

<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获得diffrence在日前的形式。

通过作曲家

[email protected]:~$ 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 
+0

为什么不计算它在后台?它会让你有更多的灵活性,你可以在不触摸模板的情况下轻松地更改它。 –

+0

我认为symfony无法解决日期差异 – afeef

+0

那么,您并不需要Symfony2的自定义功能 - 您可以使用纯PHP来完成此任务。看看这个解决方案http://stackoverflow.com/questions/1416697/converting-timestamp-to-time-ago-in-php-eg-1-day-ago-2-days-ago –

回答

9

更新我的项目安装twig/extensions你需要使用过滤器在你的对象不是方法。而你需要使用time_diff过滤:

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

为了使它工作,你需要首先通过作曲家安装树枝的扩展:

composer require twig/extensions 

,然后将其包括在适当的标签服务容器:

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

过滤器“time_diff”不存在捆绑错误 – afeef

+0

我有reffer symfony文档:http://twig.sensiolabs.org/doc/extensions/date.html – afeef

+0

当我使用$ twig-> addExtension(new Twig_Extensions_Extension_Date ());在控制器中它给503错误 – afeef

9

我试过这个代码,它的工作原理。

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

如果日期是来自一个实体,你可以:

{{ entity.days }} 

而在你的实体公正实现:

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