前段时间总是碰到时间间隔计算的问题,于是自己在网上找了一些计算方法,试了下,很多都是有问题的。本篇博客是根据网上的方法自己探索出来的,亲测没问题。
话不多说,直接上代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script> function second(s) { return s < 10 ? '0' + s: s; } var myDate = new Date(); //获取当前年 var year=myDate.getFullYear(); //获取当前月 var month=myDate.getMonth()+1; //月份记得+1,常识性问题 //获取当前日 var date=myDate.getDate(); var h=myDate.getHours(); //获取当前小时数(0-23) var m=myDate.getMinutes(); //获取当前分钟数(0-59) var s=myDate.getSeconds(); var now=year+'-'+p(month)+"-"+second(date)+" "+second(h)+':'+second(m)+":"+second(s); //获取当前时间 var str1 = '2017-10-03 14:00:00'; var str2 = now; //用正则表达式, 且精确到秒 function Days1(day1, day2){ var y1, y2, y3, m1, m2, m3, d1, d2, d3, h1, h2, h3, _m1, _m2, _m3, s1, s2, s3; var reg = /-|-|- |\/|:| /; //dayinfo - 用正则分割 var DI1 = day1.split(reg); var DI2 = day2.split(reg); var date1 = new Date(DI1[0], DI1[1], DI1[2], DI1[3], DI1[4], DI1[5]); var date2 = new Date(DI2[0], DI2[1], DI2[2], DI2[3], DI2[4], DI2[5]); //用距标准时间差来获取相距时间 var minsec = Date.parse(date1) - Date.parse(date2); var days = minsec / 1000 / 60 / 60 / 24; //factor: second / minute / hour / day var num = days.toFixed(4); var newnum=num*24*60*60; return newnum; } alert(Days1(str1, str2)+"秒"); </script> </head> <body> </body> </html>