js 计算两个时间的时间差

  • 本文为转载
    • 计算时间差原理
    • 开始操作
    • 时间格式
    • 另一个时间数据:
    • 完整计算时间差(天、小时、分钟、秒)的代码:
    • 不成熟的计算月、年
    • 获取当前月份的天数

本文为转载

原文文章链接点这

计算时间差原理

getTime()方法
方法定义: getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
通常我们计算时间差都是通过获取两个时间数据,然后分别使用getTime()方法返回与固定的1970 年 1 月 1 日的时间差,通过对返回毫秒数的差,换算成时间单位,得出两个时间的时间差。

开始操作

首先你会有一串初始的时间数据,然后通过 new Date(你的时间数据),将你的数据转成Date对象的形式。

 var t1="2017/08/28 04:56:38"; //数据var dateBegin = new Date(t1);//转化为Date对象的形式//Mon Aug 28 2017 04:56:38 GMT+0800 (中国标准时间)  这里就是Date对象的数据形式

时间格式

这里的话就要注意一下后端给的时间数据格式的问题,比如下面两种

第一种:“2017/08/28 04:56:38”//这种格式不用再进行处理
第二种:“2017-08-01 18:56:38”//这种格式就要进行处理

因为new Date()方法不能处理第二种数据,所以我们这里需要将第二种数据格式转化为第一种数据的格式。

var t1=“2017-05-12 00:13:53”;
var dateBegin = new Date(d1.replace(/-/g, “/”));//replace方法将-转为/
H2O is是液体。

另一个时间数据:

既然是时间差的话,就肯定要有两个数据,不然怎么两相比较,一般两个数据中都会有一个当前时间的数据。

var dateEnd = new Date();//当前时间数据

完整计算时间差(天、小时、分钟、秒)的代码:

function timeFn(d1) {//di作为一个变量传进来//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了var dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/,使用new Datevar dateEnd = new Date();//获取当前时间var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数var leave1=dateDiff%(24*3600*1000)    //计算天数后剩余的毫秒数var hours=Math.floor(leave1/(3600*1000))//计算出小时数//计算相差分钟数var leave2=leave1%(3600*1000)    //计算小时数后剩余的毫秒数var minutes=Math.floor(leave2/(60*1000))//计算相差分钟数//计算相差秒数var leave3=leave2%(60*1000)      //计算分钟数后剩余的毫秒数var seconds=Math.round(leave3/1000)console.log(" 相差 "+dayDiff+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")console.log(dateDiff+"时间差的毫秒数",dayDiff+"计算出相差天数",leave1+"计算天数后剩余的毫秒数",hours+"计算出小时数",minutes+"计算相差分钟数",seconds+"计算相差秒数");
}
var t3="2017-08-18 04:56:38";
timeFn(t3);

不成熟的计算月、年

//这里的dayDiff就是上文计算出的天数差let monthDiff=Math.floor(dayDiff/30);//以30天为一个月不够精准严谨//获取相差的月份if (monthDiff<12){timeThis=monthDiff+"个月前发布";//获取相差的月份return}let yearDiff=Math.floor(monthDiff/12);//获取相差的年份if(yearDiff>=1){timeThis=yearDiff+"年前发布";return}

当天数相差较大的时候,单纯计算天数已经不能满足需求了,因为我们PM说的统一以30天为一个月的分界线,然后这里月份的计算情况感觉很复杂的样子没有继续研究下去。

获取当前月份的天数

function getDays() {//构造当前日期对象var date = new Date();var year = date.getFullYear();//获取年份var mouth = date.getMonth() + 1;//获取当前月份var days;//定义当月的天数;if (mouth == 2) {//当月份为二月时,根据闰年还是非闰年判断天数days = year % 4 == 0 ? 29 : 28;}else if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12) {//月份为:1,3,5,7,8,10,12 时,为大月.则天数为31;days = 31;}else {//其他月份,天数为:30.days = 30;}return days;}

网上找了个获取当前月份天数的函数,上面的注释也足够全,我就一起贴上来,连接在下面。

js 计算两个时间的时间差相关推荐

  1. JS 计算两个时间的间隔

    js 计算两个时间之间间隔的天数 var start = new Date('2019-12-10'); //开始的时间 var end = new Date('2020-01-09'); //结束的 ...

  2. go 计算两个时间的时间差

    计算与当前时间的时间差: time1 := time.Now() // 假设是我们的某个时间点 time.Since(time1)).Seconds() // 返回time1与当前时间的秒级差值 计算 ...

  3. js计算两个时间是否大于一个月

    转载自 miskss /*** 获取某年某月的总天数* @param {Number} year 获取天数的年份* @param {Number} month 获取天数的月份* @returns {N ...

  4. 用JS的Date对象计算两个时间的时间差

    无意翻到一本相册,耶,这拍的都是什么,啥时候拍的,恩 2010年的,咋看起来这么老,内心的感情戏泛滥,2010年居然是十年前了--接着就萌生了个计算时间差的方法,下回不能让时间过这么快了 先给他找两个 ...

  5. php 计算时间差,php 怎么计算两个时间的时间差?

    这篇文章主要介绍了PHP简单计算两个时间差的方法,结合具体实例形式分析了php日期与时间的转换及数学运算相关操作技巧,需要的朋友可以参考下. 本文实例讲述了PHP简单计算两个时间差的方法.分享给大家供 ...

  6. js 计算两个时间相减获得对应的天,小时,分钟

    计算时间差,可以使用DATE对象 var beginDate = new Date(beginDateStr); var endDate = new Date(endDateStr); var hou ...

  7. js计算两个时间之间天数差的实例代码

    days = dateDiff(d1,d2); 调用该函数传递两个时间值:2013-01-19   2013-12-19 if(validatePeriod(date1Year,date1Month, ...

  8. 计算两个时间的时间差(C语言)

    首先我们先构思这套题目怎么写,时间差那很简单直接后面时间减去前面不就好了,但是忽略了一点,如果第后面时间分钟是8点10分,前面是7点20分那不就是负数了. 所以要想一个办法,这个办法就是我们先把小时那 ...

  9. ios 计算两个时间的时间差

    NSString *time2 = @"2021-06-11 08:05:00"; // 2.将时间转换为date NSDateFormatter *formatter = [[N ...

  10. js计算两个时间之间的差,超简便的方法

    转载出处 getDiffDay(date_1, date_2) {// 计算两个日期之间的差值let totalDays,diffDatelet myDate_1 = Date.parse(date_ ...

最新文章

  1. 提高ADO性能的优秀经验
  2. pyqt QGridLayout示例
  3. getchar、scanf以及缓冲区的概念
  4. Java基础—序列化关键字transient
  5. Angular 应用级别的依赖 Fake
  6. spring Boot报错 之五种(不打包运行)
  7. IDEA两步删除版本控制
  8. php如何打印png文件,我的php生成的png文件有什么问题?
  9. android开发关掉发现更新的官方版本,XUpdate:轻量级、高可用性的 Android 版本更新框架...
  10. Dockerfile制作自定义镜像
  11. Android objdump/nm/readelf使用
  12. 测试软件ipc,IPC产线调焦测试工具
  13. AI十大数据挖掘算法
  14. 风车im即时通讯源码
  15. ubuntu18.04: 安装nanomsg
  16. 电商后台管理系统——商品管理
  17. Linux的动态库和静态库
  18. MOSS的备份与还原
  19. man手册,安装中文手册
  20. 【科创人独家】军哥手记程军:我的2020,先打个60分吧

热门文章

  1. chrome内核 用h5调用高拍仪(摄像图)实现拍证件照
  2. Spring框架学习
  3. 51单片机自学笔记(三)——电子电路基础
  4. c#调用microsoft word将word另存为pdf
  5. LeetCode 206. 反转链表(c语言实现)
  6. MUTA 人力Vocaloid不是梦
  7. mmsegmentation自定义数据集
  8. java 给pdf加水印
  9. 最小二乘法曲线拟合原理
  10. [系统] Linux Iptable (Log) 技巧和实例