`
stevecj
  • 浏览: 105909 次
  • 性别: 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的3.1.33版本,这是一个稳定且功能丰富的版本。 Smarty的核心特性包括: 1. **模板和PHP代码分离**:Smarty允许开发者在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

    在本教程中,我们将快速了解Smarty的核心概念和基本用法,以便你能在5分钟内对它有一个大致的理解。 1. **Smarty模板引擎的基本概念** Smarty是一个独立于PHP的模板系统,它使用特殊的语法(类似于HTML)来创建视...

    smarty实例教程

    Smarty 实例教程 Smarty 是一个使用 PHP 编写的模板引擎,它提供了逻辑与外在...Smarty 的优点包括速度、编译型、缓存技术和插件技术等,但是在某些情况下,Smarty 并不适合使用,例如需要实时更新的内容和小项目等。

    Smarty_smarty_

    在这个Smarty_smarty_的压缩包中,很显然包含了一份详尽的Smarty教程,涵盖了从基础到高级的多个方面。下面将详细阐述Smarty模板引擎的关键知识点。 1. **基本语法**: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将在必要时重新编译模板。 7. **预处理与后处理**:通过`pre Enlighter`和`post Enlighter`函数,可以自定义模板在解析前后的处理逻辑。 通过理解并实践这些...

    smarty

    4. **插件扩展**:Smarty允许开发者自定义插件,这些插件可以是自定义函数,增强了模板的功能性。 5. **模板语言功能**:Smarty模板语言支持条件判断语句(if/elseif/else/endif),可以在模板文件中方便地进行逻辑...

    smarty3.0,smarty最新版本

    12. **插件扩展**:Smarty的灵活性体现在其强大的插件系统,用户可以自定义模板函数、滤镜、配置解析器等,满足个性化需求。 通过Smarty 3.0,开发者能够构建出更清晰、更易于维护的Web应用,同时提供了一流的用户...

    smarty源码+手册+笔记

    2. **模板函数**:类似`{foreach}`、`{if}`、`{section}`等,是Smarty提供的控制结构,用于在模板中进行条件判断和循环操作。 3. **模板插件**:你可以创建自定义的模板函数来扩展Smarty的功能,例如处理特殊格式的...

    Smarty+smarty中文手册

    5. **插件系统**: Smarty拥有丰富的内置插件,如日期格式化、字符串操作等,同时允许自定义插件以扩展其功能。 6. **配置选项**: Smarty提供了大量的配置参数,可以根据项目需求调整其行为,如模板目录、缓存目录、...

    springmvc4+smarty4j 实例

    4. 在Controller中使用Smarty:在处理请求的方法中,将模型数据绑定到Smarty实例,然后渲染模板并返回响应。 5. 视图解析:在Spring MVC的配置中,定义一个自定义的ViewResolver,使Spring能够识别并处理SMARTY模板...

    2010年图书:PHP插件: 100个强大的方案

    本书可能涉及到如何在Zend Framework中集成和使用插件,以提高开发效率和代码复用性。MVC模式是软件设计中的一个经典模式,它将应用程序分为三个主要部分:模型负责数据处理,视图负责展示,而控制器则协调两者,...

    Smarty

    Smarty Smarty Smarty

    smarty模板中文手册

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

    php开发smarty模板

    6. **预处理和后处理**: Smarty允许在渲染模板前和后执行自定义函数,这可以用于过滤数据或者添加额外的处理步骤。 7. **安全控制**:Smarty提供了一些内置的安全功能,比如对输出进行HTML转义,防止XSS攻击,以及...

    php+smarty输出新闻列表

    其中,`{foreach}`是循环结构,`{$new.title}`等是变量输出,`|truncate:200`是应用了一个模板插件,用于截取内容的前200个字符。 5. 渲染与输出:最后,使用Smarty的`display`方法将模板渲染为HTML并发送到浏览器...

    SMarty 3 文件包

    7. **插件系统**:Smarty 插件系统允许开发者创建自定义函数、块和修饰符,扩展模板功能。 8. **模板继承和布局**:通过使用模板继承,可以定义一个基础模板,其他模板继承并覆盖其中的部分内容,实现布局复用。 9...

Global site tag (gtag.js) - Google Analytics