public static function formatTime($time)
{
if (is_int($time)) {
$time = intval($time);
} elseif ($time instanceof Carbon) {
$time = intval(strtotime($time));
} else {
return '';
}
$ctime = time();
$t = $ctime - $time; //时间差 (秒)
if ($t < 0) {
return date('Y-m-d', $time);
}
$y = intval(date('Y', $ctime) - date('Y', $time));//是否跨年
/**/
$today=strtotime(date('Y-m-d',strtotime('0 day')));
if($time > $today) {//一天内
$text = '今天'.date(" H:i",$time); // 一天内
} elseif ($t < 2592000) {//30天内
if ($time > strtotime(date('Ymd', strtotime("-1 day")))) {
$text = '昨天'.date(" H:i",$time);
} elseif ($time > strtotime(date('Ymd', strtotime("-2 days")))) {
$text = '前天'.date(" H:i",$time);
} else {
$text = floor($t / 86400) . '天前';
}
} elseif ($t < 31536000 && $y == 0) {//一年内 不跨年
$m = date('m', $ctime) - date('m', $time) - 1;
if ($m == 0) {
$text = floor($t / 86400) . '天前';
} else {
$text = $m . '个月前';
}
} elseif ($t < 31536000 && $y > 0) {//一年内 跨年
$text = (12 - date('m', $time) + date('m', $ctime)) . '个月前';
} else {
$text = (date('Y', $ctime) - date('Y', $time)) . '年前';
}
return $text;
}

php 设置友好时间的更多相关文章

  1. .NET Core 中使用 Humanizer 显示友好时间格式

    今天在将一个 .net framework 项目迁移至 .net core 的过程中,在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)的代码时,找了找看有没有对应的开源库,结果找到了 Hum ...

  2. 使用AIDL调用远程服务设置系统时间

    在实际工作中,经常遇到客户需要用代码设置系统时间的需求,但是Android非系统应用是无法设置系统时间的.于是,我设计了一个使用系统签名的时间设置服务,客户通过bind调用服务里的方法就能达到设置时间 ...

  3. redis中的key设置过期时间

    EXPIRE key seconds 为给定  key  设置生存时间,当  key  过期时(生存时间为  0  ),它会被自动删除. 在 Redis 中,带有生存时间的  key  被称为『易失的 ...

  4. hwclock 显示或设置CMOS时间

    显示或设置CMOS时间 hwclock [options] 选项 -r               默认选项,读取并打印CMOS时间 -s               将CMOS时间设置为系统时间 - ...

  5. date 显示或设置系统时间和日期

    显示或设置系统时间和日期 date [options] [+format] date [options] [new date] date用来显示系统的时间和日期,超级用户可以使用date来更改系统时钟 ...

  6. MySQL设置当前时间为默认值的方法

    方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...

  7. 安装xampp无法设置默认时间的坑

    xampp无法设置默认时间,修改了时间还是无效 [Date] ; Defines the default timezone used by the date functions ; http://ph ...

  8. redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据

    在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 ...

  9. Qt设置系统时间(使用SetSystemTime API函数)

    大家都知道Qt中有QDateTime等有关时间与日期的类,类中包含很多成员函数,可以很方便的实现有关时间与日期的操作,比如:想要获得系统当前的时间与日期,可以调用currentDateTime();  ...

  10. C# UdpClient 设置超时时间

    /********************************************************************** * C# UdpClient 设置超时时间 * 说明: ...

随机推荐

  1. 第8章 LINQ 查询

    第8章 LINQ 查询 8.2 流式语法 8.2.2 使用 Lambda 表达式 常用运算符 Where() 筛选器 Order() 排序器 Select() 映射器 Take() 获取前 x 个元素 ...

  2. 初识VPC网络的能力

    本文分享自天翼云开发者社区<初识VPC网络的能力>,作者:布小匠 VPC网络的来源 在云计算早期是没有VPC的概念的,有的是虚拟网络和虚拟路由器的功能.虚拟网络的作用是为用户提供一个虚拟的 ...

  3. 玩转云端 | 网络也i人?咋变显眼包?天翼云AccessOne边缘接入来了!

    你是具有"社牛"属性的"e人" 还是"社恐"属性的"i人"? 在年轻群体中火起来的 "MBTI人格测试&quo ...

  4. 运用myabits

    要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可. 如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中: ...

  5. SQLServer 常用命令记录,持续更新.....(有问题可以留言)

    SqlServer 单用户解决方案 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+R ...

  6. C#反射机制学习

    参考原文链接:https://blog.csdn.net/xiaouncle/java/article/details/52983924 反射是.NET中的重要机制,通过反射可以得到*.exe或*.d ...

  7. 为DeepSeek添加本地知识库

    为什么要尝试给DeepSeek添加本地知识库呢?作为一个程序员,以前也用过很多AI产品,直到春节DeepSeek爆火,成功在自己的电脑上把AI模型跑起来的时候才真正感受到AI已近在咫尺.未来很多应用和 ...

  8. [BZOJ4771] 七彩树 题解

    好题,又学两个思路. 先把问题变简单一点,去掉深度限制,那么有两种做法: 经典的前驱后继转化到二维数点. 颜色相同的点按 \(dfs\) 序排序,每个点 \(+1\),相邻两点 \(lca-1\).转 ...

  9. JavaGUI - [03] LayoutManager布局管理器

      Component中有一个方法setBounds()可以设置当前容器的位置和大小,但如果我们手动为组件设置位置和大小的话,就会造成程序的不通用性.LayoutManager布局管理器可以根据运行平 ...

  10. MySQL查询建表规范

    因为之前一直再查找一些比较好的数据库规范,以方便在开发时连接 MySQL 进行查询/建表的时候,能根据规范来执行,达到提高 查询速度 / 执行 SQL 的性能 和提升 MySQL 的整体性能, 这里主 ...