刚刚、几秒前,时间格式化函数

应用场景

浏览实时信息网站时,总会看到发布时间,是这么显示的 例如 刚刚、几秒前,几分钟,几天,日期 ...,提供以下处理方案

  1. 服务端 ——PHP

  2. 客户端 ——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-date
    1000)/1000);

    //存储转换值
    var s;
    if(time=6010)){
    //超过十分钟少于1小时
    s = Math.floor(time/60);
    return s+"分钟前";
    }else if((time=60
    60)){
    //超过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

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部