php 根据时间设置多少小时 ,前天,昨天,多少月,多少年
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));//是否跨年
if ($t == 0) {
$text = '刚刚';
} elseif ($t < 60) {//一分钟内
$text = $t . '秒前';
} elseif ($t < 3600) {//一小时内
$text = floor($t / 60) . '分钟前';
} elseif ($t < 86400) {//一天内
$text = floor($t / 3600) . '小时前'; // 一天内
} elseif ($t < 2592000) {//30天内
if ($time > strtotime(date('Ymd', strtotime("-1 day")))) {
$text = '昨天';
} elseif ($time > strtotime(date('Ymd', strtotime("-2 days")))) {
$text = '前天';
} 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;
}
另外一种是设置 今天时间只是修改下一小点
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 根据时间设置多少小时 ,前天,昨天,多少月,多少年的更多相关文章
- Websphere设置JVM时区解决程序、日志时间快8小时问题
原文链接:http://www.itpub.net/thread-1204714-1-1.html 相信很多使用Websphere的朋友会经常在Windows操作系统中遇到程序时间快8小时的问题 如果 ...
- Linux下date命令,格式化输出,时间设置
date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...
- quartz定时任务时间设置
这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] ...
- quartz定时任务时间设置描述
这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , ...
- mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
在连接字符串中 添加设置节点 ConnectionLifeTime(计量单位为 秒).超过设定的连接会话 会被杀死! Connection Lifetime, ConnectionLifeTime ...
- CentOS 7解决Local Time与实际时间相差8小时问题
通过date -s “2014-12-06 15:00:00”以及timedatectl set-time “2014-12-06 15:00:00” ,以及ntp等方式均知识临时有效,苦恼了我半天. ...
- win7和ubuntu双系统,win7时间晚8小时解决办法。
装了Win7和Ubuntu双系统后发现,使用Ubuntu后再登陆win7时系统显示时间不准确,比实际时间晚了8小时. 搜索后发现原来Linux和Windows的系统时间管理是不同的.Linux是以主板 ...
- quartz 时间设置(定时任务scheduler)
quartz用来设置定时任务的作业调度程序.在linux的crontab中用到. 格式为: * * * * * * * 其从左到右顺序代表 :[秒] [分] [小时] [日] [月] [周] [年] ...
- Java中关于quartz定时任务时间设置
每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 例1:每隔5秒执行一次:*/5 * * * * ? 例2:每隔5分执行一次:0 */5 * * * ?在26分.29分. ...
- Quartz 定时任务时间设置
转自https://blog.csdn.net/zdx1515888659/article/details/79158169 quartz定时任务时间设置: 这些星号由左到右按顺序代表 : * * * ...
随机推荐
- Kali Linux 简介
Kali Linux 简介 Kali Linux 是一个由 Offensive Security 公司开发.维护和资助的基于 Debian 的 Linux 发行版,专为高级渗透测试和安全审计而设计.它 ...
- DP(优化)
史不分好坏.是史就应该冲进. 细节见其他题解. P10538 首先建出部分分 sub1 的图,发现是 DAG,于是设点为状态,即即将乘坐 \(j\) 车的最小代价 \(f_j\).这样的转移就是枚举上 ...
- 使用crewai创建属于你自己的AI团队
crewai介绍 CrewAI 是一个用于协调自主 AI 代理的前沿框架. CrewAI 允许你创建 AI 团队,其中每个代理都有特定的角色.工具和目标,协同工作以完成复杂任务. 把它想象成组建你的梦 ...
- swiper8.x在vue中的wtf
首先我是想开启鼠标滚动的效果,在官网上发现如下说法 引入就引入吧,引入路径还不说,在网上看其他教程发现路径是 引入完了,怎么办呢,又不会了,官网没有教程,网上的教程全是关于vue-awesome-sw ...
- Scala样例类及底层实现伴生对象
package com.wyh.day01 /** * 样例类的使用 * 1.使用case修饰类 * 2.不需要写构造方法,getter,setter方法,toString方法 * 3.直接通过对象名 ...
- 帝国CMS下iframe标签无法引入视频,ueditor编辑器中html标签无法显示问题,设置ueditor默认行高为1.75
问题描述: 1.帝国cms后台添加优酷视频,使用到iframe,富文本编辑器中使用iframe引入视频后检查发现html代码未出现iframe字样,排查后发现为ueditor限制过滤了部分html代码 ...
- Jmeter tcp 返回500,但服务器收到请求
解决方法:再end of line(Eol)bytes value 正确写上报文最后两位十进制字节码
- 如何基于大语言模型和MaxKB实现PPT自动生成方案
一.实现方案 利用讯飞大模型智能 PPT 生成接口实现,具体参见:讯飞开放平台智能PPT生成 https://www.xfyun.cn/services/aippt#anchor4503211 二.新 ...
- nuxt.js 使用 Typescript 在 VSCode 报错: File 'xxx/components/Logo.vue' is not a module. Vetur(2306)
nuxt.js 生成的默认文件 components/Logo.vue 源码大概如下: 1 <template> 2 <svg 3 class="NuxtLogo" ...
- Qt通过setProperty来达到设置控件的不同样式表
文章目录 前言 根据不同的属性显示不一样的样式 setProperty Q_PROPERTY和DynamicProperty 前言 最近在做项目的时候,找了一个开源的小控件,发现里面有一个设置样式的骚 ...