PHP 格式化时间显示刚刚、几分钟前、昨天、前天

PHP 格式化时间显示刚刚、几分钟前、昨天、前天,第1张

概述PHP把时间转换为友好时间段,如刚刚、几分钟前、几小时前、几天前的简单函数代码。通过把时间格式转换为时间戳,并把当前的时间戳减去之前时间的时间戳,相

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

PHP 把时间转换为友好时间段,如刚刚、几分钟前、几小时前、几天前的简单函数代码。通过把时间格式转换为时间戳,并把当前的时间戳减去之前时间的时间戳,相减后的时间戳除以相对应的秒数得到刚刚、几分钟前、几小时前、几天前的展示,需要的朋友可以参考下:

//时间格式化(时间戳)

function uc_time_ago($ptime) {

date_default_timezone_set('PRC');

//$ptime = strtotime($ptime);

$etime = time() - $ptime;

switch ($etime){

case $etime <= 60:

$msg = '刚刚';

break;

case $etime > 60 && $etime <= 60 * 60:

$msg = floor($etime / 60) . ' 分钟前';

break;

case $etime > 60 * 60 && $etime <= 24 * 60 * 60:

$msg = date('Ymd',$ptime)==date('Ymd',time()) ? '今天 '.date('H:i',$ptime) : '昨天 '.date('H:i',$ptime);

break;

case $etime > 24 * 60 * 60 && $etime <= 2 * 24 * 60 * 60:

$msg = date('Ymd',$ptime)+1==date('Ymd',time()) ? '昨天 '.date('H:i',$ptime) : '前天 '.date('H:i',$ptime);

break;

case $etime > 2 * 24 * 60 * 60 && $etime <= 12 * 30 * 24 * 60 * 60:

$msg = date('Y',$ptime)==date('Y',time()) ? date('m-d H:i',$ptime) : date('Y-m-d H:i',$ptime);

break;

default: $msg = date('Y-m-d H:i',$ptime);

}

return $msg;

}

实例 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");

?>

<h2>实例2:</h2>

<pre lang="PHP" line="1" escaped="true" ><?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 > </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',$a->index()):iconv('utf-8','当前');

 *

 */

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的PHP 格式化时间显示刚刚、几分钟前、昨天、前天全部内容,希望文章能够帮你解决PHP 格式化时间显示刚刚、几分钟前、昨天、前天所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存