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计算当前时间差的更多相关文章

  1. JS计算字符串所占字节数

    最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16. ...

  2. js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数

    js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数 >>>>>>>>>>>>>>>>>& ...

  3. js 计算快速统计中用到的日期

    前言 最近在做统计报表模块,其中查询条件用到了快速查询,主要为了方便客户统计查询常用的几个日期纬度,比如本周.上周.本月.上月.昨日. 使用js计算,主要用到了js Date. getDate().g ...

  4. js计算两个日期的天数差值

    js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...

  5. js计算字符串的字节数和字符串与二进制的相互转化

    一.js计算字符串的字节数方法: //blob获取字符串的字节 var debug = "好的"; var blob = new Blob([debug],{type : 'tex ...

  6. JS计算前一天或后一天,前一月后一月

    JS计算前一天或后一天,前一月后一月,上一天下一下,上一月下一月. 方法一: function ktkGetNextMonth(currentDate, scaleStep) { //scaleSte ...

  7. Vue.js 计算属性是什么

    Vue.js 计算属性是什么 一.总结 一句话总结: 模板 表达式 维护 在模板中表达式非常便利,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护 ...

  8. 【javascript基础】JS计算字符串所占字节数

    废话不说,直接正题吧. 最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是U ...

  9. JS计算两个日期之间的天数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. Vue.js 计算属性(computed)

    Vue.js 计算属性(computed) 如果在模板中使用一些复杂的表达式,会让模板显得过于繁重,且后期难以维护.对此,vue.js 提供了计算属性(computed),你可以把这些复杂的表达式写到 ...

随机推荐

  1. IIR数字滤波器的设计

    IIR数字滤波器的设计 Mrakdown常见数学符号 Markdown基础语法 冲激响应不变法 冲激响应不变法:就是用其单位冲激响应序列模仿模拟滤波器的单位冲激响应的抽样值 设计的具体步骤及方法 ​ ...

  2. docker中的gitlab数据备份、迁移和升级

    前期准备 数据备份 记录gitlab运行命令: docker run -itd --name gitlab \ --hostname gitlab.suniot.cn \ -p 443:443 -p ...

  3. spring事件发布与监听

    一.组成部分 spring的事件监听有三个部分组成,事件(ApplicationEvent).监听器(ApplicationListener)和事件发布操作. 二.具体实现 事件 事件对象就是一个简单 ...

  4. kettle连接oracle

    连接oracle 10g 驱动classes12.jar 配置一下三项即可: 1.数据库名称:ip:端口/实例 2.用户名 3.密码

  5. Linux shell字符操作总结

    各符号介绍 字符串长度统计 ${#string}: 字符串string的长度 字符串截取 ${string#*substring}: 从左到右截取特定字符substring第一次出现位置之后的字符串 ...

  6. odoo ORM API学习总结兼orm学习教程

    环境 odoo-14.0.post20221212.tar ORM API学习总结/学习教程 模型(Model) Model字段被定义为model自身的属性 from odoo import mode ...

  7. GO语言学习笔记-测试篇 Study for Go ! Chapter ten- Test

    持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...

  8. 宕机了,Redis如何避免数据丢失?

      Redis的持久化主要有两大机制,即AOF日志和RDB快照 AOF日志 1.2 AOF日志是如何实现的? 说到⽇志,我们⽐较熟悉的是数据库的写前⽇志(Write Ahead Log, WAL)-- ...

  9. Linux & 标准C语言学习 <DAY5>

    一.if分支语句     if(表达式)  //单分支语句     {           //表达式的值为真,则执行此处代码     }     if(表达式)  //双分支语句     {     ...

  10. RTC 科普视频丨聊聊空间音频的原理与其背后的声学原理

    在现在很多的线上实时互动场景中,我们重视的不仅仅是互动体验,还要提升沉浸感.而在很多场景中,仅凭空间音频技术,就可以带来如临其境的体验.空间音频技术的原理是怎样的呢? 看过我们新一期的 RTC 科普视 ...