• 技术文章 >后端开发 >php教程

    php计算几分钟前、几小时前、几天前的几个函数、类分享_php实例

    2016-05-17 08:46:13原创390
    一、函数实现
    实例1:
    复制代码 代码如下:

    function time_tran($the_time){
    $now_time = date("Y-m-d H:i:s",time()+8*60*60);
    $now_time = strtotime($now_time);
    $show_time = strtotime($the_time);
    $dur = $now_time - $show_time;
    if($dur < 0){
    return $the_time;
    }else{
    if($dur < 60){
    return $dur.'秒前';
    }else{
    if($dur < 3600){
    return floor($dur/60).'分钟前';
    }else{
    if($dur < 86400){
    return floor($dur/3600).'小时前';
    }else{
    if($dur < 259200){//3天内
    return floor($dur/86400).'天前';
    }else{
    return $the_time;
    }
    }
    }

    实例2:
    复制代码 代码如下:
    function format_date($time){
    $t=time()-$time;
    $f=array(
    '31536000'=>'年',
    '2592000'=>'个月',
    '604800'=>'星期',
    '86400'=>'天',
    '3600'=>'小时',
    '60'=>'分钟',
    '1'=>'秒'
    );
    foreach ($f as $k=>$v) {
    if (0 !=$c=floor($t/(int)$k)) {
    return $c.$v.'前';
    }
    }
    }
    ?>

    实例3:

    复制代码 代码如下:

    function formatTime($date) {
    $str = '';
    $timer = strtotime($date);
    $diff = $_SERVER['REQUEST_TIME'] - $timer;
    $day = floor($diff / 86400);
    $free = $diff % 86400;
    if($day > 0) {
    return $day."天前";
    }else{
    if($free>0){
    $hour = floor($free / 3600);
    $free = $free % 3600;
    if($hour>0){
    return $hour."小时前";
    }else{
    if($free>0){
    $min = floor($free / 60);
    $free = $free % 60;
    if($min>0){
    return $min."分钟前";
    }else{
    if($free>0){
    return $free."秒前";
    }else{
    return '刚刚';
    }
    }
    }else{
    return '刚刚';
    }
    }
    }else{
    return '刚刚';
    }
    }
    }

    实例4:

    复制代码 代码如下:

    function time_tran($the_time){
    $now_time = date("Y-m-d H:i:s",time()+8*60*60);
    $now_time = strtotime($now_time);
    $show_time = strtotime($the_time);
    $dur = $now_time - $show_time;
    if($dur < 0){
    return $the_time;
    }else{
    if($dur < 60){
    return $dur.'秒前';
    }else{
    if($dur < 3600){
    return floor($dur/60).'分钟前';
    }else{
    if($dur < 86400){
    return floor($dur/3600).'小时前';
    }else{
    if($dur < 259200){//3天内
    return floor($dur/86400).'天前';
    }else{
    return $the_time;
    }
    }
    }
    }
    }
    }

    二、类的实现

    复制代码 代码如下:
    /*
    * author: Solon Ring
    * time: 2011-11-02
    * 发博时间计算(年,月,日,时,分,秒)
    * $createtime 可以是当前时间
    * $gettime 你要传进来的时间
    */

    class Mygettime{

    function __construct($createtime,$gettime) {
    $this->createtime = $createtime;
    $this->gettime = $gettime;
    }

    function getSeconds()
    {
    return $this->createtime-$this->gettime;
    }

    function getMinutes()
    {
    return ($this->createtime-$this->gettime)/(60);
    }

    function getHours()
    {
    return ($this->createtime-$this->gettime)/(60*60);
    }

    function getDay()
    {
    return ($this->createtime-$this->gettime)/(60*60*24);
    }

    function getMonth()
    {
    return ($this->createtime-$this->gettime)/(60*60*24*30);
    }

    function getYear()
    {
    return ($this->createtime-$this->gettime)/(60*60*24*30*12);
    }

    function index()
    {
    if($this->getYear() > 1)
    {
    if($this->getYear() > 2)
    {
    return date("Y-m-d",$this->gettime);
    exit();
    }
    return intval($this->getYear())." 年前";
    exit();
    }

    if($this->getMonth() > 1)
    {
    return intval($this->getMonth())." 月前";
    exit();
    }

    if($this->getDay() > 1)
    {
    return intval($this->getDay())." 天前";
    exit();
    }

    if($this->getHours() > 1)
    {
    return intval($this->getHours())." 小时前";
    exit();
    }

    if($this->getMinutes() > 1)
    {
    return intval($this->getMinutes())." 分钟前";
    exit();
    }

    if($this->getSeconds() > 1)
    {
    return intval($this->getSeconds()-1)." 秒前";
    exit();
    }

    }

    }
    //类的使用实例
    /*
    *
    * 调用类输出方式
    *
    * $a = new Mygettime(time(),strtotime('-25 month'));
    * echo iconv('utf-8', 'gb2312', $a->index())?iconv('utf-8', 'gb2312', $a->index()):iconv('utf-8', 'gb2312', '当前');
    *
    */

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php实现数组筛选奇数和偶数示例_php实例 下一篇:PHP扩展模块Pecl、Pear以及Perl的区别_php技巧
    PHP编程就业班

    相关文章推荐

    • 超小PHP小马小结(方便查找后门的朋友)_php实例• 简单示例AJAX结合PHP代码实现登录效果代码_php实例• linux下怎么安装php的扩展库• 大侠一个Smarty的有关问题• 如果输出等号前变量,该如何解决

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网