PHP把时间转换成几分钟前、几小时前、几天前的几个函数、类分享
这篇文章主要介绍了php计算时间几分钟前、几小时前、几天前的几个函数、类分享,需要的朋友可以参考下
一、函数实现
实例1:
实例2:
实例3:
实例4:
二、类的实现
一、函数实现
实例1:
<?php
header("Content-type: text/html; charset=utf8");
date_default_timezone_set("Asia/Shanghai"); //设置时区
function time_tran($the_time) {
$now_time = date("Y-m-d H:i:s", time());
//echo $now_time;
$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;
}
}
}
}
}
}
echo time_tran("2014-7-8 19:22:01");
?>实例2:
<?php
function time_tranx($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;
}
}
}
}
}
}
echo time_tranx("2014-7-8 19:22:01");
?>
实例3:
<?php
function format_date($time){
$t=time()-$time;
<span style="white-space:pre"> </span>//echo 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."前";
}
}
}
echo format_date("1404600000");
?>
实例4:
<?php
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 "刚刚";
}
}
}
echo formatTime("2014-7-8 19:22:01");
?>二、类的实现
<?php
/*
* author: china_skag
* time: 2014-07-08
* 发博时间计算(年,月,日,时,分,秒)
* $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", "当前");
*
*/声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: php正则提取html图片(img)src地址与任意属性
- 下一篇: php生成html简单代码实例
