精华内容
下载资源
问答
  • 由于业务需求要做个评论功能,评论的时间要求是多久前。 评论列表友好显示时间,显示多久时间评论 思路: 获取后台返回的时间戳与本地时间戳的差值,差值就是多久评论的时间 通过比较差值与60秒,1小时,2天...

    由于业务需求要做一个评论功能,评论的时间要求是多久前。
    评论列表友好显示时间,显示多久时间前评论

    思路:

    1. 获取后台返回的时间戳与本地时间戳的差值,差值就是多久前评论的时间
    2. 通过比较差值与60秒,1小时,2天大小,判断是多少秒前,多少分钟前,昨天,前天,或具体日期具体可看代码

    代码已经封装,可以放到独立的js文件作为单独的工具函数使用

    /* eslint-disable */
    // 分,时,天,转秒
    const DATE_CONFIG = {
      m: 60,
      h: 3600,
      d: 86400,
      daysOfYeay: 365
    }
    
    // 毫秒转秒
    export function millisecond2Second(millisecond) {
      return Math.round(millisecond / 1000)
    }
    
    // 计算时间戳之间的秒差
    export function relativeSeconds(startStamp, endStamp) {
      if (endStamp) {
        return millisecond2Second(endStamp - startStamp)
      } else {
        const endStamp = new Date().valueOf()
        return millisecond2Second(endStamp - startStamp)
      }
    }
    
    // 秒转时分秒
    export function seconds2Date(seconds) {
      const dateObj = {
        h: 0,
        m: 0,
        s: 0
      }
      if (seconds < DATE_CONFIG.m) {
        dateObj.s = seconds
        return dateObj
      } else if (seconds < DATE_CONFIG.h) {
        dateObj.m = Math.round(seconds / DATE_CONFIG.m)
        return dateObj
      } else if (seconds < DATE_CONFIG.d) {
        dateObj.h = Math.round(seconds / DATE_CONFIG.h)
        return dateObj
      }
      return dateObj
    }
    
    // 获取两个日期之间的相隔天数
    export function relativeDays(startStamp, endStamp) {
      return new Date(endStamp).diff(new Date(startStamp), 'day')
    }
    
    // 获取两个日期之间的相隔多少年
    export function relativeYears(startStamp, endStamp) {
      return new Date(endStamp).year() - new Date(startStamp).year()
    }
    
    /**
     * 人性化显示时间
     *
     * @param {number | string} date 时间(时间戳或者字符)默认是时间戳
     * @param {object} [options] 配置项(可选)
     * @param {boolean} options.isString 指定date类型:默认是false. false:数字时间戳 true: YYYY-MM-DD HH:mm:ss (ISO 8601 string)
     * @param {number} options.adjustVal 校正值。单位秒。即两时间相差{adjustVal}显示为刚刚。默认:0
     */
    export function getHumanDate(date, options = {}) {
      const { isString, adjustVal = 0, needYesterday = false, monthAndDay = false } = options
      const startTemp = date
      const currDate = new Date().valueOf()
      const relativeS = relativeSeconds(startTemp, currDate)
    
      if (Math.abs(relativeS) <= adjustVal) {
        return '刚刚'
      }
    
      // 时间戳可能由服务器生成,会跟本地时间有误差。
      if (relativeS <= 0 && Math.abs(relativeS) > adjustVal) {
        return `未来 ${new Date(startTemp).format('yyyy-MM-dd hh:mm')}`
      }
    
      if (relativeS < DATE_CONFIG.m) {
        return `${relativeS}秒前`
      } else if (relativeS < DATE_CONFIG.h) {
        return `${seconds2Date(relativeS).m}分钟前`
      } else if (relativeS < DATE_CONFIG.d) {
        return `${seconds2Date(relativeS).h}小时前`
      } else if (needYesterday && relativeDays(startTemp, currDate) === 1) {
        return `昨天 ${new Date(startTemp).format('hh:mm')}`
      } else if (needYesterday && relativeDays(startTemp, currDate) === 2) {
        return `前天 ${new Date(startTemp).format('hh:mm')}`
      } else if (monthAndDay && relativeYears(currDate, startTemp) === 0) {
        return new Date(startTemp).format('MM-dd hh:mm')
      } else {
        return new Date(startTemp).format('yyyy-MM-dd')
      }
    }
    
    
    展开全文
  • 不管设置相对当前时间有多久时间差的时间,统一思路为:先获取当前时间的时间戳,再根据需求加减时间获得新的时间戳,然后取年月日与时分秒。实例如下: // 设置默认时间——先转化为毫秒数,加上 20 分钟的...

    不管是设置相对当前时间有多久时间差的时间,统一思路为:先获取当前时间的时间戳,再根据需求加减时间获得新的时间戳,然后取年月日与时分秒。实例如下:

    
      // 设置默认时间——先转化为毫秒数,加上 20 分钟的毫秒数,再转化回来
      setDefaultTime() {
        let t = new Date().getTime() + 1200000;
        let d = new Date(t);
        let theMonth = d.getMonth() + 1;
        let theDate = d.getDate();
        let theHours = d.getHours();
        let theMinutes = d.getMinutes();
        if (theMonth < 10) {
          theMonth = '0' + theMonth
        }
        if (theDate < 10) {
          theDate = '0' + theDate
        }
        if (theHours < 10) {
          theHours = '0' + theHours
        }
        if (theMinutes < 10) {
          theMinutes = '0' + theMinutes
        }
        let date = d.getFullYear() + '-' + theMonth + '-' + theDate
        let time = theHours + ':' + theMinutes
        let Spare = date + ' ' + time
        console.log(date)
        console.log(time)
        console.log(Spare)
      },

     

    展开全文
  • function timeago(dateTimeStamp){ //dateTimeStamp是一个时间毫秒,注意时间戳秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都时间毫秒。  var minute=1000*60; //把分,时,天,周...

    计算获取的那个时间距离现在多久


    function timeago(dateTimeStamp){   //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。

            var minute=1000*60;      //把分,时,天,周,半个月,一个月用毫秒表示

            var  hour=minute*60;

            var day=hour*24;

            var week=day*7;

            var halfamonth=day*15;

            var month=day*30;

       

            var  now=new Date().getTime();   //获取当前时间毫秒

            var diffValue=now-dateTimeStamp;//时间差

         

            if(diffValue<0){return;}


            var  minC=diffValue/minute;  //计算时间差的分,时,天,周,月

            var  hourC=diffValue/hour;

            var  dayC=diffValue/day;

           var  weekC=diffValue/week;    

            var  monthC=diffValue/month;


           if(minC>=1){

             result=" "+parseInt(minC)+"分钟前"

              }

       

         else  if(hourC>=1){

             result=" "+parseInt(hourC)+"小时前"

              }

        else    if(dayC>=1){

             result=" "+parseInt(dayC)+"天前"

              }

       else    if(weekC>=1){

             result=" "+parseInt(weekC)+"周前"

              }

       else    if(monthC>=1){

             result=" "+parseInt(monthC)+"月前"

              }

        else{

        result="刚刚";

        } 


     return result;

    }



    引用这个函数

    timeage(1489821062951)


    得到的形式:类似于,刚刚、2天前、2个月前


    展开全文
  • 做项目的时候后台传到前台的时间格式都时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢? 例如我们所在的 微信小程序俱乐部: 那么如何写个微信小程序...
    做项目的时候后台传到前台的时间格式都是时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢?
    例如我们所在的 微信小程序俱乐部:




    那么如何写一个微信小程序的时间戳转换工具呢?附上小程序时间戳转换效果图:


    源码
    • timestamp.wxml
    • <view class="v_beforetime">转换前:{{time}}</view>
    • <view class="v_aftertime">转换后:{{aftertime}}</view>
    • <button class="btn_changeTimestamp" bindtap="changeTimestamp"> 转换 </button>
    • timestamp.wxss
    • .page{
    •     height: 100%;
    •     width: 100%;
    • }

    • .btn_changeTimestamp{
    •     width:400rpx;
    •     height:100rpx;
    •     margin-top: 20rpx;
    •     background:#0099FF;
    • }

    • .v_beforetime{
    •     margin-top: 20rpx;
    •     background:#C0C0C0;
    • }
    • .v_aftertime{
    •     margin-top: 20rpx;
    •     background:#FF0000;
    • }
    • timestamp.js
    • // 时间戳转换成刚刚、几分钟前、几小时前、几天前

    • //刚刚
    • var just = new Date().getTime();

    • //几分钟前
    • var afewminutesago  = new Date("Nov 29, 2016 00:50:00").getTime();

    • //几周前
    • var afewweekago  = new Date("Nov 29, 2016 00:50:00").getTime();

    • //几年前
    • var someday = new Date("Nov 21, 2012 01:15:00").getTime();

    • var helloData = {
    •     time: afewweekago
    • }

    • function getDateDiff(dateTimeStamp){
    •   var result;
    •     var minute = 1000 * 60;
    •     var hour = minute * 60;
    •     var day = hour * 24;
    •     var halfamonth = day * 15;
    •     var month = day * 30;
    •     var now = new Date().getTime();
    •     var diffValue = now - dateTimeStamp;
    •     if(diffValue < 0){
    •     return;
    •   }
    •     var monthC =diffValue/month;
    •     var weekC =diffValue/(7*day);
    •     var dayC =diffValue/day;
    •     var hourC =diffValue/hour;
    •     var minC =diffValue/minute;
    •     if(monthC>=1){
    •     if(monthC<=12)
    •           result="" + parseInt(monthC) + "月前";
    •     else{
    •       result="" + parseInt(monthC/12) + "年前";
    •     }
    •     }
    •     else if(weekC>=1){
    •         result="" + parseInt(weekC) + "周前";
    •     }
    •     else if(dayC>=1){
    •         result=""+ parseInt(dayC) +"天前";
    •     }
    •     else if(hourC>=1){
    •         result=""+ parseInt(hourC) +"小时前";
    •     }
    •     else if(minC>=1){
    •         result=""+ parseInt(minC) +"分钟前";
    •     }else{
    •     result="刚刚";
    •   }

    •     return result;
    • };

    • Page({
    •     data: helloData,
    •     changeTimestamp: function (e) {
    •         var that = this;
    •         this.setData({
    •             aftertime: getDateDiff(that.data.time)
    •         })
    •     }
    • })
    • `
    实例下载请戳原文:http://bbs.jointforce.com/topic/24571
    展开全文
  • 在开发新闻客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前月前等等。 下面是个简单的实现:
  • 在React Native开发过程中,几乎所有的app都需要使用到...封装后台Http请求实现需要多久?可能有人回答1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改。花费1小...
  • 我懒得等,一般都晚上睡觉泡着,第二天起来直接熬,泡开之后好看很多。大米我们都非常熟悉的食物,它能为我们提供身体所需的能量,让我们的精力更加的充沛,和传统大米生长在田间不同,皂...
  • 在React Native开发过程中,几乎所有的app都需要使用到Http请求...封装后台Http请求实现需要多久?可能有人回答1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改...
  • 封装后台Http请求实现需要多久? 可能有人回答1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改。 花费1小时的时间不一定短,花费3、5的时间也不一定算长,具体要...
  • 我们大多数人都知道在飞机上有个“黑匣子”,那你了解黑匣子吗?你知道它内置电池可工作多久吗?...它能把飞机停止工作或失事坠毁小时的有关技术参数和驾驶舱内的声音记录下来,需要时把所记...
  • 远离消费陷阱,提升消费体验,黑猫投诉平台全天候服务,您的每条投诉,都在改变这个世界。【投诉,就上黑猫】 ...睡小时,洋洋习惯性地打开了小红书App,打算买瓶防晒霜。在搜索栏输入“防晒霜”后...
  • 在React Native开发过程中,几乎所有的app都需要使用到Http请求...封装后台Http请求实现需要多久?可能有人回答1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改...
  • 我给他的建议如果每天用心花1-2个小时,通常情况下学会种开源程序建站大概需要30天时间,也就是个月左右。这只能是一个估算值,因为每个人的学习力不一样,另外就是每个人的用心程度不一样的,因此所花的...
  • 咱们都生活在个四维的空间里,正因为有了时间维度,所有的事情不可能永远停止不,也不可能在瞬间同时发生。而我们要找的,怎样提高工作效率,让1等于甚至大于2,把自己从没完没了的工作中提早解放出来。  ...
  • 在Android开发客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前月前等等。下面提供个工具类。 代码: public class TimeUtil { private final static long minute = 60 * 1000;// 1分钟 ...
  • 在Android开发客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前月前等等。下面提供个工具类。 代码: public class TimeUtil { private final static long minute = 60 * 1000;// 1分钟 ...
  • 天必须要睡足8小时?美国抗癌协会的调查表明,每晚平均睡7~8小时的人,寿命最长;每晚平均睡4小时以下的人,有80%短寿者。但北京朝阳医院睡眠呼吸疾病诊疗中心主任郭兮恒同时指出,不同年龄段的最佳睡眠时间...
  •  辩论赛准备过程中的小技巧 1:准备场辩论比赛需要多久. 大家都学生辩手白天有课晚上可能要自习,不能整天的准备比赛. 那就以4小时/天的速度计算吧,这4个小时是每天集体讨论的时间 我个人认为大致需要7...
  • 快乐其实是一种习惯

    2009-01-15 19:49:00
    因正好尖峰时刻,没多久车子就卡在车阵中,此时座的司机先生开始不耐地叹起气来。随口和他聊了起来:“最近生意好吗?”后照镜的脸垮了下来,声音臭臭的:“有什么好?到处都不景气,你想我们出租车生意会好吗?...
  • 辩论赛准备过程中的几点小技巧 辩论赛准备过程中的几点小技巧 面对个辩题,如何在有限的时间里从无到有的为比赛作好充分准备呢 我从自己的切身体会出发谈几点,权当抛砖引玉,希望能引发大家的思考,能对...
  • 10W中的3000条,概率3%那么只要在保存文章时,按照3%的概率,...list:(Y-m-d)"然后这个缓存可以设置为48小时过期,如果有需要的话,每天可以拿前一天的缓存归档到数据库考虑到随机概率的误差,可以把3%放大到5%,...
  • 、3d建模一般学多久?太长的话,我就不玩了。...而且自学的最大问题在于纠错,有时候完成个课题,效果没有达到预期或者失败了,你可能根本不知道你在哪里做错了,而为了找到这个误区你可能要花费几个小时甚至几天
  • 、3d建模一般学多久?太长的话,我就不玩了。...而且自学的最大问题在于纠错,有时候完成个课题,效果没有达到预期或者失败了,你可能根本不知道你在哪里做错了,而为了找到这个误区你可能要花费几个小时甚至几天
  • 腾讯面试(

    2015-09-04 18:50:35
    就在两个小时前,结束了腾讯的二面,面试完没多久就从wechat上查到二面被刷! 心里久久不能平静,又反复查了好几遍,确认,嗯,的确无缘了。 一切那么的近,却又转瞬间化为乌有了。 原谅我是一个文艺...
  • day1 自我介绍 我是一个二流财经学院的的计算机专业的学生,17级,今年大二。 编程目标 目前目标不高就想达到个基本码农该有的水平 如何学习编程 ...两年基本荒废了,如果按每天有15个小时是醒着的,...
  • 刚入学没多久的时候早饭和晚自习后贾建都会在操场上跑步,每次都会跑上半个小时左右的样子,那时的贾建还是个有些微胖的小伙子呢,很阳光很爱笑。爱笑的性格在某些女孩眼里会认为贾建很幼稚不成熟,贾建也很冤枉...
  • 级恐惧与海洋之星

    2011-06-13 14:29:41
    最近养成种不良习惯,睡觉想看部电影,烂片也就算了,看看没多久就想睡觉,万一碰上喜欢的、精彩的,熬夜不可避免的。《级恐惧》就是部让我看了之后,躺在床上还兴奋了半个多小时的电影。  理查·基尔...
  • 地球如何形成的

    2019-08-07 14:44:21
    在很久很久很久以前,到底有多久呢?大约在45亿年,那时候我们...最开始,地球的自转速度很快,个昼夜只有6个小时。 科学家们猜测,在大约45亿年,曾有颗名为忒伊亚的星球撞上了地球,所形成的碎块在重...

空空如也

空空如也

1 2 3 4 5
收藏数 96
精华内容 38
关键字:

一小时前是多久