PHP将DateTime对象转化为友好时间显示的实现代码

代码如下:

/**
* 友好日期时间
*
* @param DateTime $datetime 日期时间
* @param int $size 精确到位数
* @throws \InvalidArgumentException
* @return string
*/
function friendly_date($datetime, $size=1)
{
if (is_int($datetime)) {
$datetime = new \DateTime($datetime);
}
if (!($datetime instanceof \DateTime)) {
throw new \InvalidArgumentException('invalid "DateTime" object');
}
$now = new \DateTime();
$interval = $now->diff($datetime);
$intervalData = array(
$interval->y, $interval->m, $interval->d,
$interval->h, $interval->i, $interval->s,
);
$intervalFormat = array('年', '个月', '天', '小时', '分种', '秒');
foreach($intervalData as $index=>$value) {
if ($value) {
$intervalData[$index] = $value . $intervalFormat[$index];
} else {
unset($intervalData[$index]);
unset($intervalFormat[$index]);
}
}
return implode('', array_slice($intervalData, 0, $size));
}

(0)

相关推荐

  • 总结PHP中DateTime的常用方法

    前言 实例化对象前面加\表示的是,在命名空间中使用原生的类,如果没有使用命名空间的话,可以把前面的\给删除掉 1. 输出当前时间 $datetime = new \DateTime; print_r($datetime->format('Y-m-d H:i:s')); 2. 输出给定的时间 $datetime = new \DateTime('2016-06-13'); print_r($datetime); 3. 根据给定的时间格式化为自己想要的时间 $datetime = \DateTime

  • Yii2中datetime类的使用

    前言 以前更改时间格式的时候经常使用date方法,后来知道php竟然自带datetime类处理时间格式,记录一下用法,方便以后使用 实例化 在yii 1.1中,可以直接写成 $datetime = new DateTime; 但是在yii2 这么写就直接报错了,说找不到这个类,后来一查原来跟命名空间有关系所以在使用命名空间的框架中,就要这样写,加个斜杠 $datetime = new \DateTime; 使用 下面列一下这个类都可以输出那些格式 输出当前时间 $datetime = new \

  • PHP将DateTime对象转化为友好时间显示的实现代码

    复制代码 代码如下: /** * 友好日期时间 * * @param DateTime $datetime 日期时间 * @param int $size 精确到位数 * @throws \InvalidArgumentException * @return string */ function friendly_date($datetime, $size=1) { if (is_int($datetime)) { $datetime = new \DateTime($datetime); }

  • 纯js实现动态时间显示

    本文实例为大家分享了js动态时间显示 的具体代码,供大家参考,具体内容如下 <!doctype html> <html> <head> <meta charset="utf-8"> <title>js动态时间显示 </title> </head> <body id = "show"> <script> function run(){ var time = ne

  • javaScript实现世界各地时间显示

    本文实例为大家分享了javaScript实现世界各地时间显示的具体代码,供大家参考,具体内容如下 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"&

  • javascript实现智能手环时间显示

    本文实例为大家分享了javascript实现智能手环时间显示的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

  • javascript 时间显示代码集合(Date对象)

    javascript时间函数 javascript提供了Date对象来进行时间和日期的计算. Date对象有多种构造函数: new Date() //当前时间 new Date(milliseconds) //距离起始时间1970年1月1日的毫秒数 new Date(datestring) //字符串代表的日期与时间.此字符串可以使用Date.parse()转换,比如"Jannuary 1, 1998 20:13:15" new Date(year, month, day, hours

  • PowerShell中iso8601格式日期和DateTime对象互转实例

    一.iso8601格式转换成DateTime对象 这里主要用到datetime的静态方法static datetime ParseExact(string s, string format, System.IFormatProvider provider) 复制代码 代码如下: $dateTimeStr = '20141231T23:59:59' $format = 'yyyyMMddTHH:mm:ss' $formatProvider = [Globalization.CultureInfo]

  • python 获取utc时间转化为本地时间的方法

    方法一: import datetime timenow = (datetime.datetime.utcnow() + datetime.timedelta(hours=8)) #将utc时间转化为本地时间 timetext = timenow.strftime('%y%m%d') 方法二: import datetime import dateutil.parser st_time = hit['_source']['start_time'] re_time = hit['_source']

  • JSON对象转化为字符串详解

    序列化 定义 指将 JavaScript 值转化为 JSON 字符串的过程. JSON.stringify() 能够将 JavaScript 值转换成 JSON 字符串.JSON.stringify() 生成的字符串可以用 JSON.parse() 再还原成 JavaScript 值. 参数的含义 1)JSON.stringify(value[, replacer[, space]]) 2)value:必选参数.被变换的 JavaScript 值,一般是对象或数组. 3)replacer:可以省

  • JS实现将对象转化为数组的方法分析

    本文实例讲述了JS实现将对象转化为数组的方法.分享给大家供大家参考,具体如下: 前言 其实这本来应该是一个很基础的问题了,但我之做一想记录一下是因为之前因为对象转数组的时候卡住了后来弄了出来,但最近再遇到这个问题时竟然又卡主了,所以,关于这个问题,如何把一个对象{'未完成':5, '已完成':8, '待确认':4, '已取消':6}转为[{"未完成":5},{"已完成":8},{"待确认":4},{"已取消":6}],你已经知

  • jsp Response对象页面重定向、时间的动态显示

    Response对象 response对象主要用于对客户端的请求进行回应,将web服务器处理后的结果发回给客户端,封装了jsp产生的响应,并发送到客户端响应客户端的请求,请求的数据可以是各种数据类型,甚至是文件. 常用的方法:void addCookie(Cookie c) 添加一个Cookie对象,用来保存客户端用户信息. 比如一些登录操作是否记住用户名等等.void setHeader(String name,String value) 常用的有刷新操作和定时跳转页面. response.s

随机推荐