从Smarty-2.6.10开始,给dateformat传递数字值将一直_被当作unix时间戳(除了mysql时间戳,看下文)。

    在Smarty-2.6.10之前,数字值(如 )使用了php函数strtotime()来进行处理, 所以有时候值会被看作时间字符串而不是时间戳(取决于strtotime()的实现)。

    唯一的例外mysql时间戳:14位数字值(YYYYMMDDHHMMSS),mysql时间戳比unix时间戳更优先匹配。

    程序设计者说明

    date_format是派生于PHP函数 的wrapper。 在PHP编译时的支持格式的数量将会受到系统影响。 请系统的说明找出完整的格式列表。 然而,部分格式是模拟了windows的行为,如 %D, %e, %h, %l, %n, %r, %R, %t, %T。


    Example 5.8. date_format

    模板使用了取得当前的时间:

    输出是:

    date_format支持格式:

    • %a - 当前区域星期几的简写

    • %A - 当前区域星期几的全称

    • %b - 当前区域月份的简写

    • %B - 当前区域月份的全称

    • %c - 当前区域首选的日期时间表达

    • %C - 世纪值(年份除以 100 后取整,范围从 00 到 99)

    • %d - 月份中的第几天,十进制数字(范围从 01 到 31)

    • %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31')

    • %g - 和 %G 一样,但是没有世纪

    • %h - 和 %b 一样

    • %H - 24 小时制的十进制小时数(范围从 00 到 23)

    • %I - 12 小时制的十进制小时数(范围从 00 到 12)

    • %j - 年份中的第几天,十进制数(范围从 001 到 366)

    • %k - 小时,24 小时格式,没有前导零

    • %l - 小时,12 小时格式,没有前导零

    • %m - 十进制月份(范围从 01 到 12)

    • %M - 十进制分钟数

    • %n - 换行符

    • %p - 根据给定的时间值为 am' 或pm',或者当前区域设置中的相应字符串

    • %r - 用 a.m. 和 p.m. 符号的时间

    • %R - 24 小时符号的时间

    • %t - 制表符

    • %T - 当前时间,和 %H:%M:%S 一样

    • %u - 星期几的十进制数表达 [1,7],1 表示星期一

    • %U - 本年的第几周,从第一周的第一个星期天作为第一天开始

    • %V - 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。)

    • %w - 星期中的第几天,星期天为 0

    • %W - 本年的第几周数,从第一周的第一个星期一作为第一天开始

    • %x - 当前区域首选的时间表示法,不包括时间

    • %X - 当前区域首选的时间表示法,不包括日期

    • %y - 没有世纪数的十进制年份(范围从 00 到 99)

    • %Y - 包括世纪数的十进制年份

    • %Z - 时区名或缩写

    参见 $smarty.now, , {html_select_date} 和 文章.