JS 时间转化为几分钟前 几小时前 几天前

2024-06-20 01:38

本文主要是介绍JS 时间转化为几分钟前 几小时前 几天前,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景:最近公司要做动态列表,类似于微信朋友圈。动态创建时间就需要显示为 刚刚、几分钟前、几小时前、几天前、2018-05-15,这样的形式。

 

代码如下

    var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
// 计算时间差
    handleDate(minute, hour, day,dateTimeStamp) {
var result = '';
var now = new Date().getTime();
var diffValue = now - dateTimeStamp;
if (diffValue < 0) {
console.log("时间不对劲,服务器创建时间与当前时间不同步");
return result = "刚刚";
}
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
if (parseInt(dayC) > 30) {
result = ""   this.$format(dateTimeStamp,"yyyy-MM-dd");
}else if(parseInt(dayC) > 1) {
result = ""   parseInt(dayC)   "天前";
}else if (parseInt(dayC) == 1) {
result = "昨天";
} else if (hourC >= 1) {
result = ""   parseInt(hourC)   "小时前";
} else if (minC >= 5) {
result = ""   parseInt(minC)   "分钟前";
} else
result = "刚刚";
return result;
},

 

参数 dateTimeStamp 为服务器返回的创建时间 ;

因为服务器并没有返回当前时间,所以有时候时间会出现小小的偏差,但是没关系,显示为刚刚就行了。

 

 * this.$format() 为处理时间的方法;

 1 /**
 2  * 格式化时间
 3  * @param date Date 时间
 4  * @param format 格式化 "yyyy-MM-dd hh:mm:ss www"=format
 5  * @returns {string} 格式化后字符串
 6  */
 7 
 8 export function format(date, format){
 9   if (typeof date == 'string') {
10     if(date.indexOf('T')>=0){
11       date = date.replace('T',' ')
12     }
13     date = new Date(Date.parse(date.replace(/-/g, "/")))
14   }
15   var o = {
16       "M ": date.getMonth()   1,
17       "d ": date.getDate(),
18       "h ": date.getHours(),
19       "m ": date.getMinutes(),
20       "s ": date.getSeconds(),
21       "q ": Math.floor((date.getMonth()   3) / 3),
22       "S": date.getMilliseconds()
23   };
24   var w = [
25       ['日', '一', '二', '三', '四', '五', '六'],
26       ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
27       ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
28   ];
29   if (/(y )/.test(format)) {
30       format = format.replace(RegExp.$1, (date.getFullYear()   "").substr(4 - RegExp.$1.length));
31   }
32   if (/(w )/.test(format)) {
33       format = format.replace(RegExp.$1, w[RegExp.$1.length - 1][date.getDay()]);
34   }
35   for (var k in o) {
36       if (new RegExp("("   k   ")").test(format)) {
37           format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00"   o[k]).substr((""   o[k]).length));
38       }
39   }
40   return format;
41 }
View Code

 

这篇关于JS 时间转化为几分钟前 几小时前 几天前的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076743

相关文章

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java强制转化示例代码详解

《Java强制转化示例代码详解》:本文主要介绍Java编程语言中的类型转换,包括基本类型之间的强制类型转换和引用类型的强制类型转换,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录引入基本类型强制转换1.数字之间2.数字字符之间引入引用类型的强制转换总结引入在Java编程语言中,类型转换(无论

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依