3

我正在使用Moment.js和 Twig 来计算时间前,

代码(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> 

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

4

2 回答 2

1

moment 是一个 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>
于 2012-11-29T11:39:32.607 回答
0
<li><p class="created"></p></li>                            
<script type="text/javascript">
$(function(){
  $(".created").html(moment.unix({{ post_date_gmt| date('U') }}).local().fromNow());  
});
</script>
于 2013-09-03T09:41:39.980 回答