目的:
根据不同时间,展示不同时间文案


需求:
描述如下:
x < 1分钟显示为 xxx秒前
1分钟 < x < 1小时显示为 xxx分钟前
1小时 ≤ x < 24小时显示为xx小时前
24小时 ≤ x < 1个月显示为xxx天前
1个月 ≤ x < 1年显示为xxx月前
x ≥ 1年显示为年前


效果展示:


   //获取当前时间减去服务端(接口)返回的时间戳startTimeing() {let self = thiswindow.setInterval(() => {let timestamp1 = Date.parse(new Date())let time = timestamp1 - self.start_time * 1000;//start_time是服务端获得的时间self.doTime(time)}, 1000)},doTime(time) {this.getDateDiff = this.getDateDiff(time)},getDateDiff: function (dateStr) {let that = this;let publishTime = that.getDateTimeStamp(dateStr) / 1000,d_seconds,d_minutes,d_hours,d_days,timeNow = parseInt(new Date().getTime() / 1000),d,date = new Date(publishTime * 1000),Y = date.getFullYear(),M = date.getMonth() + 1,D = date.getDate(),H = date.getHours(),m = date.getMinutes(),s = date.getSeconds();//小于10的在前面补0if (M < 10) {M = '0' + M;}if (D < 10) {D = '0' + D;}if (H < 10) {H = '0' + H;}if (m < 10) {m = '0' + m;}if (s < 10) {s = '0' + s;}d = timeNow - publishTime;d_days = parseInt(d / 86400);d_hours = parseInt(d / 3600);d_minutes = parseInt(d / 60);d_seconds = parseInt(d);if (d_days > 0 && d_days < 365) {return d_days + '天前';} else if (d_days <= 0 && d_hours > 0) {return d_hours + '小时前';} else if (d_hours <= 0 && d_minutes > 0) {return d_minutes + '分钟前';} else if (d_seconds < 60) {if (d_seconds <= 0) {return '刚刚发表';} else {return d_seconds + '秒前';}} else if (d_days >= 365) {return parseInt(d / 31536000) + '年前';}},
//字符串转换为时间戳getDateTimeStamp: function (dateStr) {let reg = /^\d+$/;if (reg.test(dateStr)) {return new Date(dateStr);} else {return Date.parse(dateStr.replace(/-/gi, "/"));}},

这里解释一下,为什么要匹配‘-’,这里是需要兼容IOS的操作。

根据不同时间,展示不同时间文案相关推荐

  1. 定义一个时钟类(TimeDemo),属性有:时、分、秒(默认值10时30分),方法有展示当前时间、过1秒,过1分钟,过1小时后的时分秒;在测试类中实现过10秒,过10分,过10小时后的时间展示

    题目: 定义一个时钟类(TimeDemo),属性有:时.分.秒(默认值10时30分),方法有展示当前时间.过1秒,过1分钟,过1小时后的时分秒:定义成员方法分别对时.分.秒进行加减运算,保证运算后时间 ...

  2. vant组件时间选择器修改时间格式以及默认展示当天时间

    vant的时间控件默认展示当天时间 <van-fieldreadonlyrequiredclickablelabel="时间事项":value="mattertim ...

  3. 【随机一句诗歌】【JS】随机一句诗歌,并且附带点击时间和当前时间。

    来源地址:https://juejin.cn/post/7033014658181103653 [每日一点事] 在埃菲尔铁塔上,其实,共刻有72位科学家的名字- 一.代码 [核心代码] getToda ...

  4. 用moment获取一年内指定周的起始时间和结束时间、用户所选时间和前端传参时间不一致问题

    问题1: 原代码: //所选周selectedWeek:{handler(){let selectedWeek = parseInt(this.selectedWeek.substring(1))// ...

  5. 怎么修改文件的创建时间和修改时间?

    怎么修改文件的创建时间和修改时间?我们打开文件的属性,便能看到这个文件的很多信息,例如文件的类型.位置.大小.所占空间,另外还有三个文件的时间信息,分别是:创建时间.修改时间和访问时间,大家似乎对前两 ...

  6. MySQL存入的时间和取出时间不一致的解决

    场景:代码运行在Linux-A上,new Date() 生成的时间比当前时间早13个小时,导致存入数据库内的时间也早13个小时,但前台读取展示出来的时间又是正常的.在数据库直接select now() ...

  7. js实现UTC时间转为北京时间,时间戳转为时间

    用了阿里云的接口,发现其穿的日期是UTC格式的.需要转换. var utc_datetime = "2017-03-31T08:02:06Z";function utc2beiji ...

  8. 更改c语言程序保存地址吗,(C语言)修改文件时间程序(创建时间、修改时间、访问时间)...

    背景 在某些情况下,我们需要对文件时间进行修改,在这里主要和大家分享一下修改文件创建时间.修改时间和访问时间的程序,C语言编写. 解决方案 我们主要调用Windows API,直接修改文件时间为自己任 ...

  9. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间(duration of an act ...

最新文章

  1. 自己面试大厂iOS开发的心得以及一些面试题
  2. 棋牌游戏服务器架构: 部署
  3. Sentinel集群流控
  4. 仪器和软件通讯测试软件,软件定义的仪器-测试测量-与非网
  5. 如何找出MySQL数据库中的低效SQL语句
  6. STM32F7xx —— ADC
  7. DB2 开发系列 从入门开始--概述
  8. 正点原子STM32F103学习笔记(二)
  9. python3 下 tkinter 的网页监控小程序
  10. 网络安全/渗透测试工具AWVS14.7下载
  11. 交换机命令中的正则表达式过滤方式
  12. php 上传文件大小设置,调整PHP上传文件大小限制
  13. IDEA社区版利用maven创建web
  14. “携手共建互联网安全生态”研讨会在京召开
  15. 我是一个将近30岁的女程序员
  16. 百度搜索引擎结果网址参数搜索历史记录(rsv_sug)
  17. 常用的软件打包工具Inno Setup和AdvancedInstallerPortable
  18. 谷歌chrome浏览器设置成深色(护眼)模式
  19. python split()函数
  20. 计算机硬件技术基础——作业四(草稿)

热门文章

  1. 阿里妈妈搜索广告CTR模型的“瘦身”之路
  2. 如何利用DeepFM算法设计推荐系统
  3. asp.net core 系列之webapi集成EFCore的简单操作教程
  4. 使用 TDD 测试驱动开发来构建 Laravel REST API
  5. # 普通函数和箭头函数的区别
  6. 一、从零创建VUE项目
  7. Java读写大文本文件(2GB以上)
  8. Android震动vibrator系统开发全过程
  9. 我的Go语言学习之旅二:入门初体验 Hello World
  10. 如何使自己的网站与UC进行用户整合