JavaScript如何计算两个日期间的时间差

有时候我们需要知道两个日期之间差了多少天,多少小时,甚至多少分钟多少秒。下面我们用JavaScript实现一个函数,用于计算两个日期的时间差,先来看看代码:

01 <script type="text/javascript">
02  
03 /**
04 * 时间对象的格式化;
05 */
06 Date.prototype.format = function(format){
07  /*
08   * eg:format="YYYY-MM-dd hh:mm:ss";
09   */
10     var o = {
11         "M+" :  this.getMonth()+1,  //month
12         "d+" :  this.getDate(),     //day
13         "h+" :  this.getHours(),    //hour
14         "m+" :  this.getMinutes(),  //minute
15         "s+" :  this.getSeconds(), //second
16         "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
17         "S"  :  this.getMilliseconds() //millisecond
18     }
19    
20     if(/(y+)/.test(format)) {
21         format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
22     }
23   
24     for(var in o) {
25         if(new RegExp("("+ k +")").test(format)) {
26             format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
27         }
28     }
29     return format;
30 }
31  
32  
33 /*
34 * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒
35 * 其中,年月日为全格式,例如 : 2010-10-12 01:00:00
36 * 返回精度为:秒,分,小时,天
37 */
38  
39 function GetDateDiff(startTime, endTime, diffType) {
40     //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
41     startTime = startTime.replace(/\-/g, "/");
42     endTime = endTime.replace(/\-/g, "/");
43  
44     //将计算间隔类性字符转换为小写
45     diffType = diffType.toLowerCase();
46     var sTime = new Date(startTime);      //开始时间
47     var eTime = new Date(endTime);  //结束时间
48     //作为除数的数字
49     var divNum = 1;
50     switch (diffType) {
51         case "second":
52             divNum = 1000;
53             break;
54         case "minute":
55             divNum = 1000 * 60;
56             break;
57         case "hour":
58             divNum = 1000 * 3600;
59             break;
60         case "day":
61             divNum = 1000 * 3600 * 24;
62             break;
63         default:
64             break;
65     }
66     return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
67 }
68  
69 var testDate = new Date();
70 var testStr = testDate.format("yyyy-MM-dd hh:mm:ss");
71  
72 var result = GetDateDiff("2010-02-26 16:00:00", testStr, "day");
73 document.write("简明现代魔法 www.nowamagic.net 建站已有" + result + "天了。");
74 //alert(result);
75 </script>

使用的方法很简单,比如计算天数可以这样:

1 GetDateDiff("2010-02-26 16:00:00""2011-07-02 21:48:40""day");

计算秒数则可以这样:

1 GetDateDiff("2010-02-26 16:00:00""2011-07-02 21:48:40""second");

实例程序的运行结果如下:广德县能源局

简明现代魔法 www.nowamagic.net 建站已有1695天了。

时间: 2024-10-09 08:45:16

JavaScript如何计算两个日期间的时间差的相关文章

计算两个日期间的时间差

<script type="text/javascript"> /* * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒 * 其中,年月日为全格式,例如 : 2010-10-12 01:00:00 * 返回精度为:秒,分,小时,天 */ function GetDateDiff(startTime, endTime, diffType) { //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 startTime =

javascript如何计算两个日期之间的时间间隔

javascript如何计算两个日期之间的时间间隔:有时候我们需要获取两个日期之间的时间间隔,下面是一段比较常用且兼容所有浏览器的代码,希望能够需要的带来一定帮助.代码如下: function NewDate(str) { str=str.split('-'); var date=new Date(); date.setUTCFullYear(str[0], str[1] - 1, str[2]); date.setUTCHours(0, 0, 0, 0); return date; } fun

输入一个日期,判断这个日期在一年中是哪一天,是星期几,计算两个日期间的天数,使用字符串输出日期

之前写了一个博文(http://blog.csdn.net/shiwazone/article/details/45053739)是用基本函数实现的,这次使用类的设计方法,也就是面向对象的方法改写一下,并加入了日期转换成字符串的实现.这里的程序也可以解决编程珠玑习题3.4的问题. #include"calendar.h" int main() { Time t; t.initialTime(); t.Show(); t.StrShow(); Time t1; t1.initialTim

oracle中用SQL实现两个日期间的日期形成一个数据集

比如输入2014-06-1 和 2014-07-1形成一个2014-06-1 2014-06-22014-06-3...2014-07-1 的数据集. 解决方法: select date'2014-06-01'+rownum-1 as my_numbersfrom dualconnect by level <= (date'2014-07-01' - date'2014-06-01') + 1 date 和to_date功能一样 select to_date('2014-06-01','yyyy

Java 两个日期间的天数计算

在Java中计算两个日期间的天数,大致有2种方法:一是使用原生JDK进行计算,在JDK8中提供了更为直接和完善的方法:二是使用第三方库. 1.使用原生的JDK [java] view plain copy print? private static long daysBetween(Date one, Date two) { long difference =  (one.getTime()-two.getTime())/86400000; return Math.abs(difference)

获取两个日期间的所有日期

/** ***获取两个日期间的所有日期 ***默认start<end **/ getBetweenDateStr('2017-07-08','2017-07-22'); function getBetweenDateStr(start,end){ var result = []; var beginDay = start.split("-"); var endDay = end.split("-"); var diffDay = new Date(); var

js 计算两个日期间的天数

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

python获取两个日期间的工作日

import datetime # 计算两个日期之间的工作日数,非天数. class workDays(): def __init__(self, start_date, end_date, days_off=None): """days_off:休息日,默认周六日, 以0(星期一)开始,到6(星期天)结束, 传入tupple 没有包含法定节假日, """ self.start_date = start_date self.end_date =

计算两个日期间,间隔时间

/** * 测试 @param args */ public static void main(String[] args) { String date1 = "2007-03-01 12:00:00"; String date2 = "2007-03-01 20:20:01"; long[] distanceTimes = null; try { distanceTimes = LockCallBack.getDistanceTimes(date1, date2)