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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
人大复印资料处理程序_补充篇
Oct 09 PHP
基于mysql的论坛(5)
Oct 09 PHP
PHP memcache扩展的三种安装方法
Apr 26 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP的Yii框架的基本使用示例
Aug 21 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
php数组遍历类与用法示例
May 24 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 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预定义常量
2006/12/25 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
web前端开发也需要日志
2010/12/09 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
跟老齐学Python之模块的加载
2014/10/24 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
python三引号如何输入
2020/07/06 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
一套.net面试题及答案
2016/11/02 面试题
诚信的演讲稿范文
2014/05/12 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
大一新生期末自我评价
2014/09/12 职场文书
关于学习的决心书
2015/02/05 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript