-
js时间处理——显示多久时间前
2021-01-26 11:57:35由于业务需求要做一个评论功能,评论的时间要求是多久前。 评论列表友好显示时间,显示多久时间前评论 思路: 获取后台返回的时间戳与本地时间戳的差值,差值就是多久前评论的时间 通过比较差值与60秒,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') } }
-
js 设置当前时间的后20分钟、后一小时、前一天等等相对时间
2018-12-19 11:35:52不管是设置相对当前时间有多久时间差的时间,统一思路为:先获取当前时间的时间戳,再根据需求加减时间获得新的时间戳,然后取年月日与时分秒。实例如下: // 设置默认时间——先转化为毫秒数,加上 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) },
-
把某个js时间转化为几天前,几小时前,几分钟前
2017-03-18 15:49:20function 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个月前
-
小程序组件之时间戳转化为几天前,几小时前,几分钟前
2016-12-28 15:00:02做项目的时候后台传到前台的时间格式都是时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢? 例如我们所在的 微信小程序俱乐部: 那么如何写一个微信小程序...做项目的时候后台传到前台的时间格式都是时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢?
例如我们所在的 微信小程序俱乐部:
那么如何写一个微信小程序的时间戳转换工具呢?附上小程序时间戳转换效果图:
源码-
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)
- })
- }
- })
-
`
-
timestamp.wxml
-
android时间工具--多久之前
2017-02-16 10:52:51在开发新闻客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前,一月前等等。 下面是一个简单的实现: -
怎样进行前后台交互_二十分钟封装,一个App前后台Http交互的实现
2021-01-11 21:48:29在React Native开发过程中,几乎所有的app都需要使用到...封装一个前后台Http请求实现需要多久?可能有人回答是1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改。花费1小... -
ip68级防水可以泡多久_皂角米怎么泡发?要煮多久?一次要泡几粒?孕妇可以吃吗?...
2020-12-28 09:32:33我懒得等,一般都是晚上睡觉前泡着,第二天起来直接熬,泡开之后好看很多。大米是我们都非常熟悉的食物,它能为我们提供身体所需的能量,让我们的精力更加的充沛,和传统大米生长在田间不同,皂... -
web程序前后台功能实现_二十分钟封装,一个App前后台Http交互的实现
2020-12-06 13:38:34在React Native开发过程中,几乎所有的app都需要使用到Http请求...封装一个前后台Http请求实现需要多久?可能有人回答是1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改... -
二十分钟封装,一个App前后台Http交互的实现
2020-06-14 01:10:25封装一个前后台Http请求实现需要多久? 可能有人回答是1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改。 花费1小时的时间不一定短,花费3、5的时间也不一定算长,具体要... -
黑匣子解密要多久_科普|飞机上的黑匣子内置电池可工作多久?
2020-12-21 23:03:59我们大多数人都知道在飞机上有一个“黑匣子”,那你了解黑匣子吗?你知道它内置电池可工作多久吗?...它能把飞机停止工作或失事坠毁前半小时的有关技术参数和驾驶舱内的声音记录下来,需要时把所记... -
部分“种草笔记”是编的,你被小红书骗了多久?
2019-03-14 11:58:58远离消费陷阱,提升消费体验,黑猫投诉平台全天候服务,您的每一条投诉,都在改变这个世界。【投诉,就上黑猫】 ...睡前半小时,洋洋习惯性地打开了小红书App,打算买一瓶防晒霜。在搜索栏输入“防晒霜”后... -
正确封装get请求_二十分钟封装,一个App前后台Http交互的实现
2021-01-24 22:00:21在React Native开发过程中,几乎所有的app都需要使用到Http请求...封装一个前后台Http请求实现需要多久?可能有人回答是1小时,也有3、5小时甚至更长时间的,或者也有说先这样封装个大概,等到需求不满足的时候再改... -
通常情况下,我们每天花一两个小时学习建站,一个月左右就能掌握一种简单开源程序建站
2014-03-31 10:24:25我给他的建议是如果每天用心花1-2个小时,通常情况下学会一种开源程序建站大概需要30天时间,也就是一个月左右。这只能是一个估算值,因为每个人的学习力不一样,另外就是每个人的用心程度是不一样的,因此所花的... -
第一章第三节 让4小时等于8小时——《与时间同行》(4)
2012-08-29 08:15:38咱们都生活在一个四维的空间里,正因为有了时间维度,所有的事情不可能永远停止不前,也不可能在一瞬间同时发生。而我们要找的,是怎样提高工作效率,让1等于甚至大于2,把自己从没完没了的工作中提早解放出来。 ... -
Android编程实现将时间转化成几分钟前、几天前等形式的工具类
2021-01-04 20:45:43在Android开发客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前,一月前等等。下面提供一个工具类。 代码: public class TimeUtil { private final static long minute = 60 * 1000;// 1分钟 ... -
Android 将时间转化成几分钟前、几天前等字样的工具类
2017-11-02 14:51:32在Android开发客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前,一月前等等。下面提供一个工具类。 代码: public class TimeUtil { private final static long minute = 60 * 1000;// 1分钟 ... -
睡眠长短决定寿命,你的年龄该睡多久?看完受益匪浅,快自查!
2017-07-03 10:31:00人一天必须要睡足8小时?美国抗癌协会的调查表明,每晚平均睡7~8小时的人,寿命最长;每晚平均睡4小时以下的人,有80%是短寿者。但北京朝阳医院睡眠呼吸疾病诊疗中心主任郭兮恒同时指出,不同年龄段的最佳睡眠时间是... -
辩论赛前准备过程中的小技巧.doc
2021-01-18 16:59:42辩论赛前准备过程中的小技巧 1:准备一场辩论比赛需要多久. 大家都是学生辩手白天有课晚上可能要自习,不能整天的准备比赛. 那就以4小时/天的速度计算吧,这4个小时是每天集体讨论的时间 我个人认为大致需要7... -
快乐其实是一种习惯
2009-01-15 19:49:00因正好是尖峰时刻,没多久车子就卡在车阵中,此时前座的司机先生开始不耐地叹起气来。随口和他聊了起来:“最近生意好吗?”后照镜的脸垮了下来,声音臭臭的:“有什么好?到处都不景气,你想我们出租车生意会好吗?... -
辩论赛前准备过程中的几点小技巧.doc
2021-01-15 15:36:58辩论赛前准备过程中的几点小技巧 辩论赛前准备过程中的几点小技巧 面对一个辩题,如何在有限的时间里从无到有的为比赛作好充分准备呢 我从自己的切身体会出发谈几点,权当抛砖引玉,希望能引发大家的思考,能对... -
爬取三千条数据需要多久_文章表500万条数据,每天会有10万条数据更新,从更新的10万条中随机选3000条做数据...
2020-12-22 09:43:4710W中的3000条,概率是3%那么只要在保存文章时,按照3%的概率,...list:(Y-m-d)"然后这个缓存可以设置为48小时过期,如果有需要的话,每天可以拿前一天的缓存归档到数据库考虑到随机概率的误差,可以把3%放大到5%,... -
都想学3D游戏建模?学习游戏建模前都得这么问自己
2020-08-13 15:38:10一、3d建模一般学多久?太长的话,我就不玩了。...而且自学的最大问题在于纠错,有时候完成一个课题,效果没有达到预期或者失败了,你可能根本不知道你在哪里做错了,而为了找到这个误区你可能要花费几个小时甚至几天 -
学习游戏建模前灵魂四问!入行需谨慎,你是否适合学习3D建模
2020-09-07 19:13:11一、3d建模一般学多久?太长的话,我就不玩了。...而且自学的最大问题在于纠错,有时候完成一个课题,效果没有达到预期或者失败了,你可能根本不知道你在哪里做错了,而为了找到这个误区你可能要花费几个小时甚至几天 -
腾讯面试(一)
2015-09-04 18:50:35就在两个小时前,结束了腾讯的二面,面试完没多久就从wechat上查到二面被刷! 心里久久不能平静,又反复查了好几遍,确认,嗯,的确无缘了。 一切那么的近,却又转瞬间化为乌有了。 原谅我是一个文艺... -
正式编程路开始第一天
2019-03-08 22:56:10day1 自我介绍 我是一个二流财经学院的的计算机专业的学生,17级,今年大二。 编程目标 目前目标不高就想达到一个基本码农该有的水平 如何学习编程 ...前两年基本荒废了,如果按每天有15个小时是醒着的,... -
一个屌丝程序员的青春(七)
2018-04-09 08:43:49刚入学没多久的时候早饭前和晚自习后贾建都会在操场上跑步,每次都会跑上半个小时左右的样子,那时的贾建还是个有些微胖的小伙子呢,很阳光很爱笑。爱笑的性格在某些女孩眼里会认为贾建很幼稚不成熟,贾建也是很冤枉... -
一级恐惧与海洋之星
2011-06-13 14:29:41最近养成一种不良习惯,睡觉前想看一部电影,烂片也就算了,看看没多久就想睡觉,万一碰上喜欢的、精彩的,熬夜是不可避免的。《一级恐惧》就是一部让我看了之后,躺在床上还兴奋了半个多小时的电影。 理查·基尔... -
地球是如何形成的
2019-08-07 14:44:21在很久很久很久以前,到底有多久呢?大约在45亿年前,那时候我们...最开始,地球的自转速度很快,一个昼夜只有6个小时。 科学家们猜测,在大约45亿年前,曾有一颗名为忒伊亚的星球撞上了地球,所形成的碎块在重...
-
XBee3用户手册.zip
-
C++ - 分文件-贪吃蛇
-
java.lang.IllegalStateException: safe guard client , should not be called ,must have a bug.
-
神奇的口袋(动态规划入门)
-
计算机相关的外文文献翻译
-
基于SSM框架的超市管理系统
-
MySQL 触发器
-
手机客户端UI测试分析
-
libFuzzer视频教程
-
Leetcode118-杨辉三角
-
精通编译Makefile,Nina, 从底层uboot到Android
-
FFmpeg4.3系列之16:WebRTC之小白入门与视频聊天的实战
-
Docker从入门到精通
-
python_programas-源码
-
在实际的使用中,应该如何合理配置核心线程数和队列长度呢?
-
牛牛量化策略交易
-
telegraf-systemd-timings:常见的telegraf systemd-timings度量标准收集包-源码
-
项目管理工具与方法
-
面罩检测器:使用卷积神经网络(CNN)的面罩检测器-源码
-
自动化测试Python3+Selenium3+Unittest