在Twig上使用Moment.js

时间:2012-09-24 07:40:21

标签: javascript twig momentjs

我正在使用Twig的Moment.js计算时间,

代码(Twig) -
我在post_date_gmt变量中有日期,我正在使用它,

<div class="time">
  <time datetime="{{ post_date_gmt| date('Y-m-d H:i:s')}}">moment.unix({{ post_date_gmt }}).local().fromNow()</time>
</div>  

这给了我输出:

<div class="time">
    moment.unix(1331845445).local().fromNow()  
</div> 

当我尝试在控制台中运行上面的字符串时,它工作正常 - '一个月前'。
我不明白为什么树枝没有给我正确的输出?
难道我做错了什么?。谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

时刻是一个javascript函数,你试图从一块HTML而不是一块javascript中调用它。有几种方法可以做到,但一个简单的黑客将是:

<div class="time">
  <time datetime="{{ post_date_gmt| date('Y-m-d H:i:s')}}">
<script type="text/javascript">document.write(moment.unix({{ post_date_gmt }}).local().fromNow());</script></time>
</div>  

我不建议使用像这样的document.write。最好将此作为一个单独的javascript类似的块(使用jquery作为示例):

<div class="time">
  <time id="time" datetime="{{ post_date_gmt| date('Y-m-d H:i:s')}}"></time>
</div>  

--- snip ---

<script type="text/javascript">
$(function(){
  $('#time').val( moment.unix({{ post_date_gmt }}).local().fromNow() );
});
</script>

答案 1 :(得分:0)

<li><p class="created"></p></li>                            
<script type="text/javascript">
$(function(){
  $(".created").html(moment.unix({{ post_date_gmt| date('U') }}).local().fromNow());  
});
</script>