资讯专栏INFORMATION COLUMN

js日期多少小时前、多少分钟前、多少秒前

GHOST_349178 / 1699人阅读

摘要:例子毫秒个月前年前源码算时间差历史时间戳,必传当前时间戳,不传将获取当前时间戳年前个月前周前天前个小时前分钟前刚刚改成了型参数,应该是这样吧算时间差历史时间戳,必传当前时间戳,不传将获取当前时间戳年前个月前周前天前个小时前分钟前刚刚

刚好项目需要这样一个功能,顺便共享出来给大家玩耍。

https://github.com/jaywcjlove/date.js

例子:

dateDiff(Timestamp,now Timestamp)
Timestamp:毫秒

dateDiff(1411430400000,1421313395359)
//=>"3个月前"

dateDiff(new Date("1987-04-03").getTime())
//=>"28年前"
源码:
;(function(window){
    /**
     * [dateDiff 算时间差]
     * @param  {[type=Number]} hisTime [历史时间戳,必传]
     * @param  {[type=Number]} nowTime [当前时间戳,不传将获取当前时间戳]
     * @return {[string]}         [string]
     */
    var dateDiff = function(hisTime,nowTime){
        var now =nowTime?nowTime:new Date().getTime(),
            diffValue = now - hisTime,
            result="",
            minute = 1000 * 60,
            hour = minute * 60,
            day = hour * 24,
            halfamonth = day * 15,
            month = day * 30,
            year = month * 12,
            
            _year = diffValue/year,
            _month =diffValue/month,
            _week =diffValue/(7*day),
            _day =diffValue/day,
            _hour =diffValue/hour,
            _min =diffValue/minute;
            
            if(_year>=1) result=parseInt(_year) + "年前";
            else if(_month>=1) result=parseInt(_month) + "个月前";
            else if(_week>=1) result=parseInt(_week) + "周前";
            else if(_day>=1) result=parseInt(_day) +"天前";
            else if(_hour>=1) result=parseInt(_hour) +"个小时前";
            else if(_min>=1) result=parseInt(_min) +"分钟前";
            else result="刚刚";
            return result;
    }
    window.dateDiff = dateDiff
})(window);

改成了型参数,应该是这样吧

;(function(window){
    /**
     * [dateDiff 算时间差]
     * @param  {[type=Number]} hisTime [历史时间戳,必传]
     * @param  {[type=Number]} nowTime [当前时间戳,不传将获取当前时间戳]
     * @return {[string]}         [string]
     */
    var dateDiff = function(hisTime,nowTime){
        if(!arguments.length) return "";
        var arg = arguments,
            now =arg[1]?arg[1]:new Date().getTime(),
            diffValue = now - arg[0],
            result="",

            minute = 1000 * 60,
            hour = minute * 60,
            day = hour * 24,
            halfamonth = day * 15,
            month = day * 30,
            year = month * 12,

            _year = diffValue/year,
            _month =diffValue/month,
            _week =diffValue/(7*day),
            _day =diffValue/day,
            _hour =diffValue/hour,
            _min =diffValue/minute;

            if(_year>=1) result=parseInt(_year) + "年前";
            else if(_month>=1) result=parseInt(_month) + "个月前";
            else if(_week>=1) result=parseInt(_week) + "周前";
            else if(_day>=1) result=parseInt(_day) +"天前";
            else if(_hour>=1) result=parseInt(_hour) +"个小时前";
            else if(_min>=1) result=parseInt(_min) +"分钟前";
            else result="刚刚";
            return result;
    }
    window.dateDiff = dateDiff
})(window);

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

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

相关文章

  • date.js 对时间的操作

    摘要:时间操作格式化时间年月日年月日年月日小时分秒年月日小时分秒多少小时前多少分钟前多少秒前个月前年前年前时间转换倒计时毫秒输出格式这个是基于原型扩展出来的时分秒时分秒解决因时区变更,导致显示服务器时间不准确服务端传入前端一般为秒 date 时间操作 showImg(https://img.shields.io/github/issues/jaywcjlove/date.js.svg); ...

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

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

    RobinTang 评论0 收藏0
  • JS基础篇--日期Date详解与实例扩展

    摘要:实际上,如果直接将表示日期的字符串传递给构造函数,也会在后台调用方法,例如下面的代码跟前面的是等价的。构造函数构造函数会模仿但有一点不同的是,日期和时间都是基于本地时区而非来创建。兼容性问题啊其原因就是非标准日期格式。 一:Date类型介绍 要创建一个日期对象,使用new操作符和Date构造函数即可: var now = new Date(); Date.parse()方法 其中Da...

    Apollo 评论0 收藏0
  • 也许是最简洁好用的timeago.js库了

    摘要:地址项目主页是一个非常简洁轻量级小于的很简洁的库,用来将时间转化成类似于时间前的描述字符串,例如小时前。 timeago.js Github地址:https://github.com/hustcc/timeago.js 项目主页:http://timeago.org/ timeago.js 是一个非常简洁、轻量级、小于 2kb 的很简洁的Javascript库,用来将datetime时...

    DataPipeline 评论0 收藏0
  • Quartz学习之Cron Expressions表达式

    摘要:请注意,触发器将不会在上午点开始,仅在,,和请注意,一些调度要求太复杂,无法用单一触发表示例如每上午至之间每分钟,下午至晚上点之间每分钟一次。在这种情况下的解决方案是简单地创建两个触发器,并注册它们来运行相同的作业。 表达式说明 Cron-Expressions 用于配置 CronTrigger的实例。Cron Expressions 是由七个子表达式组成的字符串,用于描述日程表的各个...

    Mr_zhang 评论0 收藏0

发表评论

0条评论

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