资讯专栏INFORMATION COLUMN

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

lavnFan / 461人阅读

摘要:时间戳转字符串格式邱先生烟火里的尘埃版本传入时间戳获取时间戳去掉时间戳后三位,与时间戳保持一致存储转换值十分钟内刚刚超过十分钟少于小时分钟前超过小时少于小时小时前超过天少于天内天前超过天

应用场景

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

服务端 ——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){
              //十分钟内
              echo "刚刚";
          }elseif(((time()-$date)<60*60)&&((time()-$date)>=60*10)){
              //超过十分钟少于1小时
              $s = floor((time()-$date)/60);
              echo  $s."分钟前";
          }elseif(((time()-$date)<60*60*24)&&((time()-$date)>=60*60)){ 
              //超过1小时少于24小时
              $s = floor((time()-$date)/60/60);
              echo  $s."小时前";
          }elseif(((time()-$date)<60*60*24*3)&&((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<60*10){//十分钟内
        return "刚刚";
    }else if((time<60*60)&&(time>=60*10)){
        //超过十分钟少于1小时
        s = Math.floor(time/60);
        return  s+"分钟前";
    }else if((time<60*60*24)&&(time>=60*60)){ 
        //超过1小时少于24小时
        s = Math.floor(time/60/60);
        return  s+"小时前";
    }else if((time<60*60*24*3)&&(time>=60*60*24)){ 
        //超过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();
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21785.html

相关文章

  • 刚刚秒前时间式化函数

    摘要:时间戳转字符串格式邱先生烟火里的尘埃版本传入时间戳获取时间戳去掉时间戳后三位,与时间戳保持一致存储转换值十分钟内刚刚超过十分钟少于小时分钟前超过小时少于小时小时前超过天少于天内天前超过天 应用场景 浏览实时信息网站时,总会看到发布时间,是这么显示的 例如 刚刚、几秒前,几分钟,几天,日期 ...,提供以下处理方案 服务端 ——PHP 客户端 ——JavaScript showI...

    YancyYe 评论0 收藏0
  • js 显示友好的时间格式刚刚秒前,几小时,几天前(3天内) 时间式化

    摘要:毫秒转换友好的显示格式输出格式小时分钟秒获取当前时间戳分钟秒小时分钟秒超过天秒毫秒转换友好的显示格式毫秒转换友好的显示格式输出格式小时前获取时间戳去掉时间戳后三位,与时间戳保持一致存储转换值十分钟内刚刚超过十分钟少于小时分钟前 /** * 毫秒转换友好的显示格式 * 输出格式:21小时28分钟15秒 * @param {[type]} time [description] *...

    RobinTang 评论0 收藏0
  • 微信小程序开发问题汇总

    摘要:前言经过将近一个多月的开发我们团队开发的微信小程序出发吧一起终于开发完成现在的线上版本为版本文章主要介绍该小程序在开发中所用到的技术已经在开发中遇到问题的采取的解决方法开源地址开发中技术问题汇总使用的出现问题在小程序开发过程中我们经常会用 前言 经过将近一个多月的开发,我们团队开发的微信小程序 出发吧一起 终于开发完成,现在的线上版本为 2.2.4-beta 版本文章主要介绍该小程序...

    SnaiLiu 评论0 收藏0
  • js日期多少小时前、多少分钟前、多少秒前

    摘要:例子毫秒个月前年前源码算时间差历史时间戳,必传当前时间戳,不传将获取当前时间戳年前个月前周前天前个小时前分钟前刚刚改成了型参数,应该是这样吧算时间差历史时间戳,必传当前时间戳,不传将获取当前时间戳年前个月前周前天前个小时前分钟前刚刚 刚好项目需要这样一个功能,顺便共享出来给大家玩耍。 https://github.com/jaywcjlove/date.js 例子: dateDiff(...

    GHOST_349178 评论0 收藏0
  • JavaScript让时间显示为多久以前

    摘要:在做论坛的功能时,要求帖子的发帖时间显示几秒前,几分钟前,几小时前。。。这种功能,于是就把获取到的发帖时间做了如下处理刚刚分钟前小时前天前个月前很久前 在做论坛的功能时,要求帖子的发帖时间显示几秒前,几分钟前,几小时前。。。这种功能,于是就把获取到的发帖时间做了如下处理: function gettime(createtime){ var now=Date.parse(new Da...

    Thanatos 评论0 收藏0

发表评论

0条评论

lavnFan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<