3

時間を計算するためにTwigで Moment.jsを使用しています。

コード(小枝) -変数に
日付があり、次のように使用しています、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> 

コンソールで上記の文字列を実行しようとすると、正常に機能しました-'1か月前'。
小枝が正しい出力を提供しない理由がわかりませんか?
私は何か間違ったことをしていますか?御時間ありがとうございます。

4

2 に答える 2

1

momentはjavascript関数であり、javascriptのブロックではなくHTMLのブロックから呼び出そうとしています。それを行うにはいくつかの方法がありますが、簡単なハックは次のようになります。

<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 に答える