`
stevecj
  • 浏览: 104411 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

smarty插件:在多少分钟前,多少小时前,多少天前。

    博客分类:
  • PHP
PHP 
阅读更多

smarty插件:在多少分钟前,多少小时前,多少天前。

 

现在很多网站将时间的显示都变得更人性化,例如:某某在3分钟之前执行过XX动作。最近在做相关的东西所以直接在SMARTY中做了这个插件。
插件说明:
1、 3个月以内的时间都将以“XX前”这样的形式显示。
2、3个月以后的时间将以参数“$dateformat”提供的格式显示正常时间“XX年XX月XX日,时:分:秒”
3、$timestamp参数必须为有效的并且小于当前时间的时间戳。
4、$dateformat参数为大于三个月的时间显示格式可以配合“php时间显示格式 ”使用。
插件代码:

/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/

 
/**
* Smarty date_ago modifier plugin
*
* Type:     modifier
 
* Name:     date_ago
 
* Purpose:  通过时间戳获取时间戳离现在多久
* @author   StMadMan
* @param timestamp|string
* @param dateformat|string
* @return string|void
*/

function
 smarty_modifier_date_ago(
$timestamp
,
 $dateformat
 =
 'Y年m月d日, H:i:s'
)

{

    $now
 =
 time
(
)
;

    if
 (
$timestamp
 &
gt;
 $now
)
 {

        return
 FALSE
;

    }

    $agoTime
 =
 $now
 -
 $timestamp
;

    if
 (
 $agoTime
 &
lt;
 60
 )
 {

        return
 $agoTime
.
'秒前'
;

    }
elseif
(
 $agoTime
 &
lt;
 3600
 &
amp;&
amp;
 $agoTime
 &
gt;
 60
 )
{

        return
 intval
(
$agoTime
/
60
)
 .
'分钟前'
;

    }
elseif
 (
 $agoTime
 &
lt;
 86400
 &
amp;&
amp;
 $agoTime
 &
gt;
 3600
)
 {

        return
 intval
(
$agoTime
/
3600
)
 .
'小时前'
;

    }
elseif
 (
 $agoTime
 &
lt;
 604800
 &
amp;&
amp;
 $agoTime
 &
gt;
 86400
)
 {

        return
 intval
(
$agoTime
/
86400
)
 .
'天前'
;

    }
elseif
 (
 $agoTime
 &
lt;
 2592000
 &
amp;&
amp;
 $agoTime
 &
gt;
 604800
 )
 {

        return
 '约'
 .
 intval
(
$agoTime
/
604800
)
 .
 '周前'
;

    }
elseif
 (
 $agoTime
 &
lt;
 7776000
 &
amp;&
amp;
 $agoTime
 &
gt;
 2592000
 )
 {

        return
 '约'
 .
 intval
(
$agoTime
/
2592000
)
 .
'个月前'
;

    }
else
{

        return
 date
(
$dateformat
,
 $timestamp
)
;

    }

}

将以上代码保存至smarty/plugins/modifier.date_ago.php(需要自行创建)。
使用方法:{1267623549|date_ago}

分享到:
评论

相关推荐

    最新版smarty插件

    最新版的smarty。Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。

    Dreamweaver的Smarty插件

    Smarty模板插件下载,Dreamweaver的Smarty插件

    DZ论坛 PHP插件开发[基于Smarty]

    DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发[基于Smarty]DZ论坛 PHP插件开发...

    5分钟搞定smarty

    5分钟搞定smarty5分钟搞定smarty

    smarty-custom-plugins:这是 Smarty 自定义插件

    #Smarty 自定义插件 这是 Smarty 自定义插件。 目录 一、要求 Smarty 自定义插件 2.x:PHP 5.3+、Smarty 3+ Smarty 自定义插件 1.x:PHP 4 或 5,Smarty 2+ (不再支持 1.x。) 2. 安装 下载 Smarty 自定义插件。 ...

    smarty3 的应用详解

    $smarty= Smarty::instance(); 模板 之前的smarty模板,相当于重新定义了一套标签语言,那么smarty3提供了一种新的模板形式,直接支持php语法的模板。 但是问题就出来了,我们还有必要用模板吗? 引用php类型模板...

    Smarty

    Smarty Smarty Smarty

    smarty模板中文手册

    1. 速度:采用Smarty编写的程序可以获得...4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。 5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

    smarty安装与入门

    (1) 我在根目录下建立了新的目录learn/,再在learn/里建立一个目录smarty/。将刚才解压缩出来的目录的libs/拷贝到smarty/里,再在smarty/里新建templates目录,templates里新建cache/,templates/,templates_c/, ...

    Smarty 2.6.24

    php Smarty 模板 版本:Smarty 2.6.24

    Smarty_smarty_

    Smarty 模板引擎教程,内容主要有基本语法、变量、组合修改器、内建函数、自定义函数、配置文件、控制台调试、缓存、插件扩展、使用技巧和经验等,比较详细的一个中文手册

    Laravel开发-smarty

    Laravel开发-smarty 改进latrell/smarty,增加配置项,让其支持fis smarty插件的配置项。

    smarty3.0,smarty最新版本

    smarty3.0,smarty最新版本

    Smarty 2.6.18

    php smarty模板引擎 版本: smarty 2.6.18

    Smarty最新版下载自Smarty官网

    Smarty最新版官网,Smarty最新版下载自Smarty官网

    smarty-3.1.29

    2015年12月24日最新版:smarty-3.1.29

    smarty运算符

    php5会使用的smarty运算符,smarty是在php前期使用中常见的模版分离,同时国内鼎鼎大名的ecshop也是采用这样方式开发系统

    前端 后端 Fis3+Es6+Smarty+Tmpl

    ├─ plugin # Smarty 的插件放入这个目录 ├─ smarty.conf # 本地测试的 Smarty 引擎的配置文件 ├─ fis-conf.js # fis3 的配置文件 ├─ page # 放一些页面 ├─ server.conf # 本地测试的URL转发规则配置...

    兄弟连smarty3视频教程

    资源名称:兄弟连smarty3视频教程资源目录:[Smarty3]的安装与初使化及调优[Smarty3]的学习方式和基本语法[Smarty3]模板引擎定义和自定义模板引擎[Smarty3]模板中自定义函数插件[Smarty3]中变量修改器的应用[Smarty3...

Global site tag (gtag.js) - Google Analytics