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),你可以把这些复杂的表达式写到 ...
随机推荐
- Docker 安装 MySQL5.7
1.拉取数据库镜像 docker pull mysql:5.7 docker images命令查看镜像是否下载成功 docker images 2.配置mysql 创建mysql目录,用于存放mysq ...
- 如何让charles无论怎么请求都返回一个结果
1. map Local 将匹配的url映射到本地文件.这个需要首先将url右键,save Response,将原有报文保存到本地,然后映射到该文件,修改该文件即可,直接自己写费事2. ...
- Angular架构学习
定义 Angular 是一个用 HTML 和 JavaScript 或者一个可以编译成 JavaScript 的语言(例如 Dart 或者 TypeScript ),来构建客户端应用的框架. 写 An ...
- vuw3学习大全(2)
# composition(组合式api) ## 1.为什么使用composition vue3里面不需要Mixins了?因为有compoition api 能讲逻辑进行抽离和复用 大型组件中,其中* ...
- CVE-2016-2183(SSL/TLS)漏洞的办法
运行gpedit.msc,打开"本地组策略编辑器" 启用"SSL密码套件顺序" TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_ ...
- 对于Python中RawString的理解(引用)
对于Python中RawString的理解 总结 1.'''作用: 可以表示 "多行注释" ."多行字符串" ."其内的单双引号不转义" 2 ...
- 把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1
外部振荡器引脚OSC_IN/OSC_OUT可以用做GPIO的PD0/PD1,通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现.这个重映射只适用于36. 48和64脚的封装(100脚和 ...
- java并发编程实践-线程安全性
线程是CPU资源调度的基本单位,如果一个程序中只有一个线程,则最多只能在一个处理器上运行,如果电脑/服务器是双处理器系统,则单线程的程序只能使用一半的CPU资源,所以,多线程是提高处理器资源利用率的重 ...
- C++编码注意事项
1. vector,string不能按位赋值(vector用push_back, string用重载"+"号)
- Linux0.11源码学习(二)
Linux0.11源码学习(二) linux0.11源码学习笔记 参考资料:https://github.com/sunym1993/flash-linux0.11-talk 源码查看:https:/ ...