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


Posted in PHP onApril 09, 2014

一、函数实现
实例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:
<?php
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; 
   }
   }
    }
}
}
}

二、类的实现

<?php
/*
 * 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', '当前');
 *
 */
PHP 相关文章推荐
PHP静态新闻列表自动生成代码
Jun 14 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP分享图片的生成方法
Apr 25 PHP
YII框架关联查询操作示例
Apr 29 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 #PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 #PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 #PHP
php解决约瑟夫环示例
Apr 09 #PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 #PHP
PHP父类调用子类方法的代码例子
Apr 09 #PHP
一个基于phpQuery的php通用采集类分享
Apr 09 #PHP
You might like
php自动获取目录下的模板的代码
2010/08/08 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php 启动报错如何解决
2014/01/17 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Python语言快速上手学习方法
2018/12/14 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
幼师自我鉴定范文
2013/10/01 职场文书
测试工程师岗位职责
2013/11/28 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
个人简历中自我评价
2014/02/11 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
感谢信范文大全
2015/01/23 职场文书
小学运动会入场口号
2015/12/24 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers