date_format[格式化日期]

格式化从函数strftime()获得的时间和日期。
Unix或者mysql等的时间戳记(parsable by strtotime)都可以传递到smarty。
设计者可以使用date_format完全控制日期格式。
如果传给date_format的数据是空的,将使用第二个参数作为时间格式。  

test.php:
$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty->assign('config', $config);
$smarty->assign('yesterday', strtotime('-1 day'));


test.html:
{$smarty.now|date_format}<br>
{$smarty.now|date_format:"%D"}<br>
{$smarty.now|date_format:$config.date}<br>
{$yesterday|date_format}<br>
{$yesterday|date_format:"%A, %B %e, %Y"}<br>
{$yesterday|date_format:$config.time}<br>


需要注意一点修改php.ini配置:

加上date.timezone = Asia/Shanghai

不然会报错:

It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.


输出:
微信图片_20180312174000.png


date_format支持格式:

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

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

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

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

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

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

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

%D - 和 %m/%d/%y 一样

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

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

%G - 4 位数的年份

%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 小时符号的时间

%S - 十进制秒数

%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 - 时区名或缩写






继续学习
||
<?php echo "date_format[格式化日期]";
提交重置代码