刚刚、几秒前,时间格式化函数
应用场景
浏览实时信息网站时,总会看到发布时间,是这么显示的 例如 刚刚、几秒前,几分钟,几天,日期 ...,提供以下处理方案
服务端 ——PHP
客户端 ——JavaScript
处理方案
服务端 ——PHP
使用服务器端实现,很方便,把时间戳存储到数据库,具有时间统一的优点,但当使用ajax请求数据库直接返回json数据时,无法使用。
/ * [dataStr description] * @author 邱先生 * @copyright 烟火里的尘埃 * @version [V1.0版本] * @date 2016-07-13 * @param [type] $date [时间戳] * @return [type] [description] */static public function dataStr($date){ if((time()-$date)=60*10)){ //超过十分钟少于1小时 $s = floor((time()-$date)/60); echo $s."分钟前"; }elseif(((time()-$date)=60*60)){ //超过1小时少于24小时 $s = floor((time()-$date)/60/60); echo $s."小时前"; }elseif(((time()-$date)=60*60*24)){ //超过1天少于3天内 $s = floor((time()-$date)/60/60/24); echo $s."天前"; }else{ //超过3天 echo date("Y/m/d",$date); }}
客户端 ——JavaScript
适用于ajax请求服务器直接返回json数据,处理展示的情况,但时间的计算是根据客户端时间为准计算(现在都是智能时代,可忽略),有一个问题是,PHP存储到数据库的时间戳是10位的,但js的时间戳不是。以下函数已经做了处理。
/
[Datestr 时间戳转字符串格式]
@author 邱先生
@copyright 烟火里的尘埃
@version [V1.0版本]
@date 2016-06-26
@param {[type]} date [传入php 时间戳]
/
function dateStr(date){
//获取js 时间戳
var time=new Date().getTime();
//去掉 js 时间戳后三位,与php 时间戳保持一致
time=parseInt((time-date1000)/1000);//存储转换值
var s;
if(time=6010)){
//超过十分钟少于1小时
s = Math.floor(time/60);
return s+"分钟前";
}else if((time=6060)){
//超过1小时少于24小时
s = Math.floor(time/60/60);
return s+"小时前";
}else if((time=606024)){
//超过1天少于3天内
s = Math.floor(time/60/60/24);
return s+"天前";
}else{
//超过3天
var date= new Date(parseInt(date) * 1000);
return date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate();
}
}
关键字:php, JavaScript
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!