js计算当前时间差
1 function timesFun(timesData) {
2 //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
3 var dateBegin = new Date(timesData); //将-转化为/,使用new Date
4 var dateEnd = new Date(); //获取当前时间
5 var dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
6 console.log(dateBegin,dateDiff, '111111111111')
7 console.log(dateEnd, dateDiff, '22222222222222')
8 var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
9 var leave1 = dateDiff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
10 var hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数
11 //计算相差分钟数
12 var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
13 var minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数
14 //计算相差秒数
15 var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
16 var seconds = Math.round(leave3 / 1000);
17 var timesString = "";
18
19 if (dayDiff != 0) {
20 timesString = dayDiff + "天之前";
21 } else if (dayDiff == 0 && hours != 0) {
22 timesString = hours + "小时之前";
23 } else if (dayDiff == 0 && hours == 0) {
24 timesString = minutes + "分钟之前";
25 }
26
27 return {
28 timesString: timesString
29 };
30 }
31 var timesData = "2022-01-25 01:25:02";
32 console.log(timesFun(timesData))
1 function valideNull(val) {
2 return typeof val == 'undefined' || val == '' || val == null || JSON.stringify(val) == '{}';
3 }
4 function zeroize(num) {
5 return (String(num).length == 1 ? '0' : '') + num;
6 }
7
8 function timestampFormat(time) {
9 let timestamp = '';
10 if (!valideNull(time)) {
11 var arr = time.replace(/ |:/g, '-').split('-');
12 let date = new Date(Date.UTC(arr[0], arr[1] - 1, arr[2], arr[3] - 8, arr[4]));
13 timestamp = date.getTime() / 1000;
14 } else {
15 return '';
16 }
17
18
19 var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳
20 var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数
21 var curDate = new Date(curTimestamp * 1000); // 当前时间日期对象
22 var tmDate = new Date(timestamp * 1000); // 参数时间戳转换成的日期对象
23 var Y = tmDate.getFullYear(),
24 m = tmDate.getMonth() + 1,
25 d = tmDate.getDate();
26 var H = tmDate.getHours(),
27 i = tmDate.getMinutes();
28 var nh = curDate.getHours();
29 var ch = nh - H;
30
31 // s = tmDate.getSeconds()
32 // var nh = curDate.getHours(),
33 if (timestampDiff < 60) {
34 // 一分钟以内
35 return '刚刚';
36 } else if (timestampDiff < 3600) {
37 // 一小时前之内
38 return Math.floor(timestampDiff / 60) + '分钟前';
39 } else if (curDate.getFullYear() == Y && curDate.getMonth() + 1 == m && curDate.getDate() == d) {
40
41 return ch + '小时前';
42 } else {
43 var newDate = new Date((curTimestamp - 86400) * 1000); // 参数中的时间戳加一天转换成的日期对象
44 var newDate2 = new Date((curTimestamp - (86400 * 2)) * 1000); //参数中的时间戳加两天转换成的日期对象
45 var newDate3 = new Date((curTimestamp - (86400 * 3)) * 1000); //参数中的时间戳加三天转换成的日期对象
46 if (newDate.getFullYear() == Y && newDate.getMonth() + 1 == m && newDate.getDate() == d) {
47 return '一天前 ';
48 } else if (newDate2.getFullYear() == Y && newDate2.getMonth() + 1 == m && newDate2.getDate() == d) {
49 return '两天前';
50 } else if (newDate3.getFullYear() == Y && newDate3.getMonth() + 1 == m && newDate3.getDate() == d) {
51 return '三天前';
52 } else {
53 return Y + '-' + zeroize(m) + '-' + zeroize(d);
54 }
55 }
56 }
57
58 var timesData = "2022-02-08 11:47:02";
59 console.log(timestampFormat(timesData))
js计算当前时间差的更多相关文章
- JS计算字符串所占字节数
最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16. ...
- js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数
js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数 >>>>>>>>>>>>>>>>>& ...
- js 计算快速统计中用到的日期
前言 最近在做统计报表模块,其中查询条件用到了快速查询,主要为了方便客户统计查询常用的几个日期纬度,比如本周.上周.本月.上月.昨日. 使用js计算,主要用到了js Date. getDate().g ...
- js计算两个日期的天数差值
js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...
- js计算字符串的字节数和字符串与二进制的相互转化
一.js计算字符串的字节数方法: //blob获取字符串的字节 var debug = "好的"; var blob = new Blob([debug],{type : 'tex ...
- JS计算前一天或后一天,前一月后一月
JS计算前一天或后一天,前一月后一月,上一天下一下,上一月下一月. 方法一: function ktkGetNextMonth(currentDate, scaleStep) { //scaleSte ...
- Vue.js 计算属性是什么
Vue.js 计算属性是什么 一.总结 一句话总结: 模板 表达式 维护 在模板中表达式非常便利,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护 ...
- 【javascript基础】JS计算字符串所占字节数
废话不说,直接正题吧. 最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是U ...
- JS计算两个日期之间的天数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Vue.js 计算属性(computed)
Vue.js 计算属性(computed) 如果在模板中使用一些复杂的表达式,会让模板显得过于繁重,且后期难以维护.对此,vue.js 提供了计算属性(computed),你可以把这些复杂的表达式写到 ...
随机推荐
- Rsync+NFS实战,解决NFS单点问题
1.环境准备 主机 ⻆⾊ ip web01 NFS客户端.RSYNC客户端 172.16.1.7 nfs NFS服务端.RSYNC客户端 172.16.1.31 backup NFS服务端.RSYNC ...
- linux 部署轻量级堡垒机Next Terminal
对比 类似的开源堡垒机有 Teleport,Jumpserver,Next Terminal等等. Teleport 安全性最好,较轻量,但是对被管理资产不透明,纳管前需要双向认证,在资产设备上需额外 ...
- F - Substring of Sorted String
题目链接 题解(树状数组) 我们维护两个树状数组,一个记录 \(1\sim i\) 中 \(s_i>s_{i+1}\)的数量,即逆序对数量,另一个记录 \(1\sim i\) 中 \(26\) ...
- 07-Spring的事务处理
Spring中提供了七种事务的传播行为: PROPAGATION_REQUIRED:默认值,最常用,统一事务,出现异常,全部回滚 其余参考Spring事务处理word文档. 0.原转账业务(不含事务处 ...
- SpringBoot之基于idea搭建ssm(maven)
此次目标为搭建一个简单的基于springboot的ssm(spring + springmvc + mybatis)的maven项目,使用的数据库为mysql. 最终项目目录结构 创建过程 1.项目创 ...
- VSCode 快捷键,简化操作
一. 区域代码快捷键 1. 折叠所有 折叠所有区域代码的快捷: ctrl + k ctrl + 0 ; 展开所有折叠区域代码的快捷:ctrl +k ctrl + J ; 2. 按层 ...
- 一文快速回顾 Servlet、Filter、Listener
什么是Servlet? 前置知识: Web 服务器:可以指硬件上的,也可以指软件上的.从硬件的角度来说, Web 服务器指的就是一台存储了网络服务软件的计算机:从软件的角度来说, Web 服务器指的是 ...
- Kakao Brain 的开源 ViT、ALIGN 和 COYO 文字-图片数据集
最近 Kakao Brain 在 Hugging Face 发布了一个全新的开源图像文本数据集 COYO,包含 7 亿对图像和文本,并训练了两个新的视觉语言模型 ViT 和 ALIGN ViT 和 A ...
- 中国科学院2019年大学生数学夏令营考试试题 选做 (Mathematica练习)
目录 试题 1 6 9 solution to (1) solution to (2) 相关读物 试题 选择性地做一些,没有对答案.能机器算的我就不拿纸笔算了,当然实际考试是笔试... 不定期更新 1 ...
- Prometheus Alertmanager生产配置趟过的坑总结
简介 Alertmanager 处理由客户端应用程序(如 Prometheus server)发送的警报.它负责去重(deduplicating),分组(grouping),并将它们路由(routin ...