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

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用三元表达式实现(时,分,秒)前的时间差计算脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

@H_512_11@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) &amp;& 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小时的,都用回原来的时间,我觉得这样可以增加用户体验。
如果你有更加简便的代码,欢迎留言。

脚本宝典总结

以上是脚本宝典为你收集整理的使用三元表达式实现(时,分,秒)前的时间差计算全部内容,希望文章能够帮你解决使用三元表达式实现(时,分,秒)前的时间差计算所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。