[轮子][js]时间戳转换成X天前的时间格式

2016-12-29


最近在做微信小程序项目,需要写一些公共的js库,里面涉及到一些自己写的方法。突发奇想把它们公布出来,如果大家都能公布出自己写的一些有用的公共方法,然后整理成册的话,一定是非常有价值的。而且自己在做项目的时候,有很多轮子直接拿来用就好了,也不需要重复的去写,肯定可以加快开发的速度,毕竟微信小程序如果火了,各位的boss是不会给各位太多时间哒

有时候后台大哥回传给前台的时间格式统一都是时间戳,因为后台不关心前台的展示方式。前台有可能展示的是年月日,这个就非常的普通了,但是如果是论坛或者瀑布流类的信息,往往会显示多久以前回的贴,该信息时多久以前发的。比如新浪微博:

[轮子][js]时间戳转换成X天前的时间格式

大家仔细看图——不是看美女,是看红框处。这个js就是把后台传回的时间戳转换成这种格式的时间。上小程序截图!

[轮子][js]时间戳转换成X天前的时间格式

上面这张图就是时间戳格式,下面这张图则是点击按钮后将时间戳与当前时间(手机当前的时间)比较后得出的X时间前的格式。

[轮子][js]时间戳转换成X天前的时间格式

上代码:


function dateDiff (dateTimeStamp){


            

        if(isNaN(dateTimeStamp)){


            console.error("入参格式变了,不合法了~");


            return dateTimeStamp;


        }  




            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;


            var result = "";


            if(monthC>=1){


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


            }


            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;


        }


将时间戳传入这个函数,直接会返回和当前时间比较之后的字符串。

下面放上整个工程的代码,大家可以去做一下实验。因为是跟上次的getTime工程写在一起的,所以就一起上传,人懒,管不了那么多了。




0
收藏