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

相关文章

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

JavaScript时间戳与时间的转化常用方法

《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面... 目录1. 获取当前时间戳2. 时间戳 → 时间对象3. 时间戳php → 格式化字符串4. 时间字符