资讯专栏INFORMATION COLUMN

使用三元表达式实现(时,分,秒)前的时间差计算

terro / 1443人阅读

摘要:最近发现三元表达式超级好用,以前我们用的最多可能就是这种代码,但是其实我们可以用更加简便的方式实现如果为则执行。

最近发现三元表达式超级好用,以前我们用的最多可能就是:

const apple = isApple ? buyApple : ""

这种代码,但是其实我们可以用更加简便的方式实现
const apple = isApple && buyApple 如果isApple为true则执行buyApple。

而我们常用的
const options = options || default 则是options为true则后面的default不再执行。
好了懂得上面的原理,我们来实现一个例子:评论很多时候有个日期,但是很多都不是显示实际日期,而是显示1天前,1分钟前,1小时前之类的,我们运用上面的三元表达式来实现:

const getTimeString = timeNum => {
        const timeString = timeNum instanceof Date ? timeNum : new Date(timeNum)
    const second = 1000
    const minute = 1000 * 60
    const hour = minute * 60
    const day = hour * 24
    const time_now =  new Date().getTime()
    const time_difference = time_now - timeString
    const that_time = timeString.getFullYear() + "-"
                    + parseInt(timeString.getMonth()+1) + "-" 
                    + timeString.getDate()+ " " 
                    + timeString.getHours() + ":" 
                    + (timeString.getMinutes()<10 ? 
                        "0"+timeString.getMinutes() : 
                        timeString.getMinutes())
    return Math.floor((time_difference/day) && that_time)
    || (Math.floor(time_difference/hour) && Math.floor(time_difference/hour)+"小时前")
    || (Math.floor(time_difference/minute) && Math.floor(time_difference/minute)+"分前")
    || (Math.floor(time_difference/second) && Math.floor(time_difference/second)+"秒前")
}

调用方法也很简单:

getTimeString(new Date("2017-9-12 15:23:10"))

上面运用了es6的语法,不熟悉的,可以看看es6的教程
因为事先不知道传过来是否是日期对象,所以我们需要判断一下

const timeString = timeNum instanceof Date || new Date(timeNum)

如果评论过了1天,按照天,周,月来看时间,我觉得比较累,所以大于24小时的,都用回原来的时间,我觉得这样可以增加用户体验。
如果你有更加简便的代码,欢迎留言。

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

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

相关文章

  • javascript 中一些奇葩的日期换算

    摘要:想阅读更多优质文章请猛戳博客一年百来篇优质文章等着你获取今天的时分秒常用于开始日期的获取中国标准时间获取一个月前的日期中国标准时间获取一个月前的时分秒中国标准时间获取前一天的日期中国标准时间加一天中国标准时间减一天中国标准时间获取今 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 1.获取今天的0时0分0秒(常用于开始日期的获取) new Date(new Dat...

    Render 评论0 收藏0
  • javascript 中一些奇葩的日期换算

    摘要:想阅读更多优质文章请猛戳博客一年百来篇优质文章等着你获取今天的时分秒常用于开始日期的获取中国标准时间获取一个月前的日期中国标准时间获取一个月前的时分秒中国标准时间获取前一天的日期中国标准时间加一天中国标准时间减一天中国标准时间获取今 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 1.获取今天的0时0分0秒(常用于开始日期的获取) new Date(new Dat...

    maxmin 评论0 收藏0
  • javascript 中一些奇葩的日期换算

    摘要:想阅读更多优质文章请猛戳博客一年百来篇优质文章等着你获取今天的时分秒常用于开始日期的获取中国标准时间获取一个月前的日期中国标准时间获取一个月前的时分秒中国标准时间获取前一天的日期中国标准时间加一天中国标准时间减一天中国标准时间获取今 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 1.获取今天的0时0分0秒(常用于开始日期的获取) new Date(new Dat...

    testHs 评论0 收藏0
  • 基于Keras实现加密卷积神经网络

    摘要:奥胡斯大学密码学机器学习工程师介绍了如何实现基于加密数据进行训练和预测的卷积神经网络。通过卷积神经网络分析图像在最近几年极为流行,因为在图像相关任务上的表现超过了其他许多方法。 奥胡斯大学密码学PhD、Datadog机器学习工程师Morten Dahl介绍了如何实现基于加密数据进行训练和预测的卷积神经网络。TL;DR 我们选取了一个经典的CNN深度学习模型,经过一系列步骤的改造,使其得以基于...

    fjcgreat 评论0 收藏0

发表评论

0条评论

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