php比较全的友好时间显示
分享一个php友好的比较完成的时间格式化函数,包括‘刚刚’,'几秒之前',‘几分钟前’,'几小时前',几天前,几周前,几个月前等。调用方式很简单,是从ThinkSNS 里面拿出来的。
/**
* 友好的时间显示
*
* @param int $sTime 待显示的时间
* @param string $type 类型. normal | mohu | full | ymd | other
* @param string $alt 已失效
* @return string
*/
function friendlyDate($sTime,$type = 'normal',$alt = 'false') {
if (!$sTime)
return '';
//sTime=源时间,cTime=当前时间,dTime=时间差
$cTime = time();
$dTime = $cTime - $sTime;
$dDay = intval(date("z",$cTime)) - intval(date("z",$sTime));
//$dDay = intval($dTime/3600/24);
$dYear = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
//normal:n秒前,n分钟前,n小时前,日期
if($type=='normal'){
if( $dTime < 60 ){
if($dTime < 10){
return '刚刚'; //by yangjs
}else{
return intval(floor($dTime / 10) * 10)."秒前";
}
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
//今天的数据.年份相同.日期相同.
}elseif( $dYear==0 && $dDay == 0 ){
//return intval($dTime/3600)."小时前";
return '今天'.date('H:i',$sTime);
}elseif($dYear==0){
return date("m月d日 H:i",$sTime);
}else{
return date("Y-m-d H:i",$sTime);
}
}elseif($type=='mohu'){
if( $dTime < 60 ){
return $dTime."秒前";
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
}elseif( $dTime >= 3600 && $dDay == 0 ){
return intval($dTime/3600)."小时前";
}elseif( $dDay > 0 && $dDay<=7 ){
return intval($dDay)."天前";
}elseif( $dDay > 7 && $dDay <= 30 ){
return intval($dDay/7) . '周前';
}elseif( $dDay > 30 ){
return intval($dDay/30) . '个月前';
}
//full: Y-m-d , H:i:s
}elseif($type=='full'){
return date("Y-m-d , H:i:s",$sTime);
}elseif($type=='ymd'){
return date("Y-m-d",$sTime);
}else{
if( $dTime < 60 ){
return $dTime."秒前";
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
}elseif( $dTime >= 3600 && $dDay == 0 ){
return intval($dTime/3600)."小时前";
}elseif($dYear==0){
return date("Y-m-d H:i:s",$sTime);
}else{
return date("Y-m-d H:i:s",$sTime);
}
}
}
/**
* 友好的时间显示
*
* @param int $sTime 待显示的时间
* @param string $type 类型. normal | mohu | full | ymd | other
* @param string $alt 已失效
* @return string
*/
function friendlyDate($sTime,$type = 'normal',$alt = 'false') {
if (!$sTime)
return '';
//sTime=源时间,cTime=当前时间,dTime=时间差
$cTime = time();
$dTime = $cTime - $sTime;
$dDay = intval(date("z",$cTime)) - intval(date("z",$sTime));
//$dDay = intval($dTime/3600/24);
$dYear = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
//normal:n秒前,n分钟前,n小时前,日期
if($type=='normal'){
if( $dTime < 60 ){
if($dTime < 10){
return '刚刚'; //by yangjs
}else{
return intval(floor($dTime / 10) * 10)."秒前";
}
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
//今天的数据.年份相同.日期相同.
}elseif( $dYear==0 && $dDay == 0 ){
//return intval($dTime/3600)."小时前";
return '今天'.date('H:i',$sTime);
}elseif($dYear==0){
return date("m月d日 H:i",$sTime);
}else{
return date("Y-m-d H:i",$sTime);
}
}elseif($type=='mohu'){
if( $dTime < 60 ){
return $dTime."秒前";
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
}elseif( $dTime >= 3600 && $dDay == 0 ){
return intval($dTime/3600)."小时前";
}elseif( $dDay > 0 && $dDay<=7 ){
return intval($dDay)."天前";
}elseif( $dDay > 7 && $dDay <= 30 ){
return intval($dDay/7) . '周前';
}elseif( $dDay > 30 ){
return intval($dDay/30) . '个月前';
}
//full: Y-m-d , H:i:s
}elseif($type=='full'){
return date("Y-m-d , H:i:s",$sTime);
}elseif($type=='ymd'){
return date("Y-m-d",$sTime);
}else{
if( $dTime < 60 ){
return $dTime."秒前";
}elseif( $dTime < 3600 ){
return intval($dTime/60)."分钟前";
}elseif( $dTime >= 3600 && $dDay == 0 ){
return intval($dTime/3600)."小时前";
}elseif($dYear==0){
return date("Y-m-d H:i:s",$sTime);
}else{
return date("Y-m-d H:i:s",$sTime);
}
}
}
php比较全的友好时间显示的更多相关文章
- php 时间转化为刚刚、几秒前、几分前、几天前等等,友好时间提示
/ * 友好时间显示 */ function date_friend_tips($time){ if (!$time) return false; if(!is_numeric($time)){ $t ...
- PHP比较全的友好的时间显示,比如‘刚刚’,'几秒前'等
分享一个php友好的比较完成的时间格式化函数,包括‘刚刚’,'几秒之前',‘几分钟前’,'几小时前',几天前,几周前,几个月前等.调用方式很简单,是从ThinkSNS 里面拿出来的. /** * 友好 ...
- .NET Core 中使用 Humanizer 显示友好时间格式
今天在将一个 .net framework 项目迁移至 .net core 的过程中,在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)的代码时,找了找看有没有对应的开源库,结果找到了 Hum ...
- Xiuno BBS 4.0 修改时间显示
修罗开源轻论坛程序 - Xiuno BBS 4.0Xiuno BBS 4.0 是一款轻论坛产品,前端基于 BootStrap 4.0.JQuery 3,后端基于 PHP/7 MySQL XCache/ ...
- js获取当前时间显示在页面上
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- jsp界面动态时间显示
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 将时间显示为“刚刚”“n分钟/小时前”等
在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Uni ...
- phpcms v9 搜索结果列表页时间显示1970问题解决方案
对于喜欢用phpcms v9 的小伙伴来说,在调用时间时,总会出现时间1970这样的问题,对于这个问题,网上的说法很多,内容页时间显示通常不会问题,搜索结果页就不行了,通过总结,发现使用{format ...
- pandas修改全列的时间格式 无需使用apply
df.date.dt.strftime('%Y%m%d') #实现全列修改时间格式
随机推荐
- Web Service基本概念
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP ...
- iOS UI-表格控制器(UITableView)-基本使用
tableView的常见属性 cell的常见属性 一.一般情况 #import "ViewController.h" @interface ViewController ()< ...
- 算法笔记_025:字符串的全排列(Java)
目录 1 问题描述 2 解决方案 2.1 递归实现 2.2 字典序排列实现 1 问题描述 输入一个字符串,打印出该字符串的所有排列.例如,输入字符串”abc”,则输出有字符’a’,’b’,’c’所 ...
- MySQL查询性能优化---高性能(二)
转载地址:https://segmentfault.com/a/1190000011330649 避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列.请求多余的行和列会消耗MySql ...
- HTTP使用 multipart/form-data 上传多个字段(包括文件字节流 octet-stream)
自己用到的一个向服务器上传多个字段的实例,代码不全,仅做参考. 用的是WinINet,上传的字段中包括文件字节流 /* PHttpRequest中自行组装body之后,HttpSendRequest中 ...
- linux abstract model of virtual memory
- zabbix的搭建与入门
一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制 ...
- 《Python》 面向对象初识
一.面向对象初识: 1.结构上理解:类由两部分组成 class A: # class是类的关键字,类名首字母默认大写 name = 'alex' # 静态属性,静态变量,静态字段 def func ...
- SHA1
整理于互动百科 安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital ...
- Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html 前提:开启TOMCAT,MYsql MySQL ...