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

搜索热词

一、函数实现

实例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',$a->index()):iconv('utf-8','当前');

*

*/

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值