日期时间

一般经验而言,都是将时间戳作为日期时间值传递给Smarty。 模板设计者可以使用date_format 修饰器来控制日期时间的显示格式,还可以在需要时进行日期的比较。


Example 21.4. 使用 date_format

  1. {$startDate|date_format}
  2.  

输出:

  1. Jan 4, 2009
  2.  
  1. {$startDate|date_format:"%Y/%m/%d"}
  2.  

输出:

  1. 2009/01/04
  2.  

日期的时间戳可以在模板内进行比较:

  1. {if $order_date < $invoice_date}
  2. ...do something..
  3. {/if}
  4.  

当在模板内使用 {html_select_date}, 程序设计者会希望将输出的日期转换回时间戳。下面的函数可以做到这点:


Example 21.5. 转换元件的日期为时间戳

  1. <?php
  2.  
  3. // this assumes your form elements are named
  4. // startDate_Day, startDate_Month, startDate_Year
  5.  
  6. $startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
  7.  
  8. function makeTimeStamp($year='', $month='', $day='')
  9. {
  10. if(empty($year)) {
  11. $year = strftime('%Y');
  12. }
  13. if(empty($month)) {
  14. $month = strftime('%m');
  15. }
  16. if(empty($day)) {
  17. $day = strftime('%d');
  18. }
  19.  
  20. return mktime(0, 0, 0, $month, $day, $year);
  21. }
  22. ?>
  23.  

参见 {html_select_date}, {html_select_time}, date_format$smarty.now,

原文: https://www.smarty.net/docs/zh_CN/tips.dates.tpl