最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
smarty date_format用法与中文乱码解决方法
时间:2022-06-25 02:20:26 编辑:袖梨 来源:一聚教程网
在php中使用date函数来格式化时间戳,smarty中可以使用date_format来实现
具体用法:
代码如下 | 复制代码 |
{$timestamp|date_fomat:”%Y-%m-%d %H:%M:%S”} |
注意:| 两边没有空格
输出形式:2010-07-10 16:30:25
其他用法如下:
代码如下 | 复制代码 |
{$smarty.now|date_format} |
实例
date_format[日期格式]
index.php:
代码如下 | 复制代码 |
$smarty = new Smarty; |
index.tpl:
代码如下 | 复制代码 |
{$smarty.now|date_format} |
OUTPUT:
代码如下 | 复制代码 |
Feb 6, 2001 |
smarty的date_format中不能有中文的解决
{$smarty.now|date_format:"%Y年%m月%d日"} 这样写就成了"2010年%m月%d日"+一些乱码如果给汉字后加上空格就正常了,但是输出也有了空格。
为了解决这个问题,读了smarty的插件代码modifier.date_format.php:
发现里面strftime这个PHP函数对于中文支持不好。
所以我修改了modifier.date_format.php函数,一劳永逸啊。大家可以直接复制替换原有内容即可。
而且我这个函数还是支持繁简中文的
代码如下 | 复制代码 |
function smarty_modifier_date_format($string, $format = '%b %e, %Y', $default_date = '') { if (substr(PHP_OS,0,3) == 'WIN') { $_win_from = array ('%e', '%T', '%D'); $_win_to = array ('%#d', '%H:%M:%S', '%m/%d/%y'); $format = str_replace($_win_from, $_win_to, $format); } $arrTemp = array('年','月','日','时','分','秒','?r'); foreach($arrTemp as $v){ if(strpos($format,$v)){ $strFormat = str_replace('%','',$format); } } if($string != '') { if(!emptyempty($strFormat)) return date($strFormat, smarty_make_timestamp($string)); else return strftime($format, smarty_make_timestamp($string)); } elseif (isset($default_date) && $default_date != '') { if(!emptyempty($strFormat)) return date($strFormat, smarty_make_timestamp($default_date)); else return strftime($format, smarty_make_timestamp($default_date)); } else { return; } } |
相关文章
- 奇迹暖暖卷二10-6高分有哪些搭配思路 04-30
- 老头看到一美女大冬天还穿超短裙 04-30
- 我看看,在哪一层啊? 04-30
- 我满脸通红的说:这是首付 04-30
- 面试时候也把自己说的很牛B的样子 04-30
- 你们的菜要慢点上,厨师去买土豆了…… 04-30