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),你可以把这些复杂的表达式写到 ...
随机推荐
- 重复引入reactor-netty
java.lang.NoClassDefFoundError: reactor/util/retry/Retry at reactor.netty.http.client.HttpClientConn ...
- Angular Material TreeTable Component 使用教程
一. 安装 npm i ng-material-treetable --save npm i @angular/material @angular/cdk @angular/animations -- ...
- 变量调用分析——这个ball到底是那个ball?
public class Ball implements Rollable{ public static void main(String[] args) { Ball ball = new Ball ...
- String当中的intern()
public class String001 { public static void main(String[] args) { String s1 = "hello"; Str ...
- Unity递归查找子物体
- iOS C#远程推送证书.p12文件制作
1.PushChat.certSigningRequest 请求证书文件 生成Certificate Signing Request (CSR): 2.填写你的邮箱和Common Name, ...
- windows2012通过powershell安装远程组件技巧
概要: 通过服务器管理器安装远程桌面服务会报错一直没有办法解决 之后了解到安装组件可以通过powershell命令安装 powershell命令说明 https://docs.microsoft. ...
- SQL统计(一)
参考博客: https://blog.csdn.net/GuTiDong/article/details/81326787 按月份统计每个月的订单总金额 https://blog.csdn.net/h ...
- 基于 Agora SDK 实现 Windows 端的多人视频互动(基于3.6.2版本)
本文介绍如何通过 Agora SDK 在 Windows 平台快速实现互动直播.互动直播和实时通话的区别就在于,直播频道的用户有角色之分.你可以将角色设置为主播或者观众,其中主播可以收.发流,观众只能 ...
- 论文翻译:2023_THLNet: two-stage heterogeneous lightweight network for monaural speech enhancement
论文地址:THLNet: 用于单耳语音增强的两级异构轻量级网络 代码:https://github.com/dangf15/THLNet 引用格式:Dang F, Hu Q, Zhang P. THL ...