2017-03-09 75 views
1

是否有可能以及如何使用它自己的函數在FatFree框架內格式化日期?如何在fatfree模板中設置日期格式?

<repeat group="{{ @rows }}" value="{{ @row }}"> 
     <tr> 
     <td>{{ @row.idbox }}</td> 
     <td>{{ @row.code }}</td> 
     <td>{{ @row.createon }}</td>//date to format 
     <td>{{ @row.senton }}</td> 
     <td>{{ @row.price }}</td> 
     </tr> 
</repeat> 
+0

什麼,如果有的話,你已經嘗試過? – Adam

+0

我看不懂.. – andymo

+1

嘗試'{{'{0,date}',@ row.createon |格式}}根據https://fatfreeframework.com/3.6/base#format – ikkez

回答

0

該框架沒有爲日期格式提供專用過濾器。

格式篩選

可以使用format語法,但語法是有點特殊,因爲它主要是爲了本地化字符串:

本地化字符串:

index.php

$f3->PREFIX='dict.'; 
$f3->LOCALES('dict/'); 
$tpl=Template::instance(); 
echo $tpl->render('template.html'); 

dict/en.ini

order_date = Order date: {0, date} 

template.html

<!-- with a UNIX timestamp --> 
<td>{{ dict.order_date, @row.createon | format }}</td> 

<!-- with a SQL date field --> 
<td>{{ dict.order_date, strtotime(@row.createon) | format }}</td> 

沒有本地化字符串:

template.html

<!-- with a UNIX timestamp --> 
<td>{{ '{0, date}', @row.createon | format }}</td> 

<!-- with a SQL date field --> 
<td>{{ '{0, date}', strtotime(@row.createon) | format }}</td> 

自定義過濾器

幸運的是,框架給了我們創造0的可能性:

index.php

$tpl=Template::instance(); 
$tpl->filter('date','MyFilters::date'); 
echo $tpl->render('template.html'); 

myfilters.php

class MyFilters { 

    static function date($time,$format='Y-m-d') { 
    if (!is_numeric($time)) 
     $time=strtotime($time);// convert string dates to unix timestamps 
    return date($format,$time); 
    } 

} 

template.html

<!-- default Y-m-d format --> 
<td>{{ @row.createon | date }}</td> 

<!-- custom format Y/m/d --> 
<td>{{ @row.createon, 'Y/m/d' | date }}</td> 
+0

很好的解釋!謝謝 – andymo

0

使用標準的PHP date()函數。以前的答案是一個非常複雜的方式來獲得相同的結果:

{{ date('d M Y',strtotime(@row.createon)) }} 

你需要使用的strtotime是因爲F3的::模板視圖呈現變量,即使他們的時間戳/日期字符串中的原因數據庫。

相關問題