JavaScript计算两个日期之间的时间差

下面我们用JavaScript实现了一个函数,用于计算两个日期的时间差,先来看看代码:

<script type="text/javascript">

/**
* 时间对象的格式化;
*/
Date.prototype.format = function(format){
 /*
  * eg:format="YYYY-MM-dd hh:mm:ss";
  */
 var o = {
    "M+" :  this.getMonth()+1,  //month
    "d+" :  this.getDate(),     //day
    "h+" :  this.getHours(),    //hour
       "m+" :  this.getMinutes(),  //minute
       "s+" :  this.getSeconds(), //second
       "q+" :  Math.floor((this.getMonth()+3)/3),  //quarter
       "S"  :  this.getMilliseconds() //millisecond
 }
 
    if(/(y+)/.test(format)) {
     format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
 
    for(var k in o) {
     if(new RegExp("("+ k +")").test(format)) {
        format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
     }
    }
  return format;
}

/*
* 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒
* 其中,年月日为全格式,例如 : 2016-05-12 01:00:00
* 返回精度为:秒,分,小时,天
*/

function GetDateDiff(startTime, endTime, diffType) {
    //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
    startTime = startTime.replace(/\-/g, "/");
    endTime = endTime.replace(/\-/g, "/");

    //将计算间隔类性字符转换为小写
    diffType = diffType.toLowerCase();
    var sTime = new Date(startTime);      //开始时间
    var eTime = new Date(endTime);  //结束时间
    //作为除数的数字
    var divNum = 1;
    switch (diffType) {
        case "second":
            divNum = 1000;
            break;
        case "minute":
            divNum = 1000 * 60;
            break;
        case "hour":
            divNum = 1000 * 3600;
            break;
        case "day":
            divNum = 1000 * 3600 * 24;
            break;
        default:
            break;
    }
    return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}

//var testDate = new Date();
//var testStr = testDate.format("yyyy-MM-dd hh:mm:ss");
</script>

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

GetDateDiff("2015-02-26 16:00:00", "2016-07-02 21:48:40", "day");

计算秒数则可以这样:

GetDateDiff("2015-02-26 16:00:00", "2016-07-02 21:48:40", "second");

时间: 2024-10-03 21:53:12

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

机房收费系统的实现之用DateDiff函数计算两个日期之间的时间差

机房收费做到上机和下机部分时,需要计算从上机到下机之间的时间差,从而计算出上机期间所花的费用. 这时候,可以用一个函数就可以简单的实现--DateDiff(),具体使用规则: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) 函数返回值为从date1到date2所经历的时间,timeinterval 表示相隔时间的类型(即时间的度量单位),分别为: 年份 yyyy 季度 q 月份 m 每年的某一日

JavaScript计算两个日期时间段内日期的方法

 这篇文章主要介绍了JavaScript计算两个日期时间段内日期的方法,涉及javascript操作时间的技巧,需要的朋友可以参考下     本文实例讲述了JavaScript计算两个日期时间段内日期的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: /************************* * 计算两个日期时间段内所有日期 * * @param value1 * 开始日期 YYYY-MM-DD * @param value2 * 结束日期 * return 日期数组

Javascript计算两个marker之间的距离(Google Map V3)_javascript技巧

Google Map V3 javascript计算两个marker之间的距离 做地图开发,最常用到的就是marker一些操作和交互.简单介绍一下,两个marker之间的距离计算. google map api 很方便的 只要是常用的 基本上都有接口. 1.创建两个marker点 复制代码 代码如下: var oldMarker = new google.maps.Marker({ position: new google.maps.LatLng("31.95678", "1

link用循环计算两个日期之间有多少工作日

问题描述 link用循环计算两个日期之间有多少工作日 用循环计算两个日期之间有多少工作日,link怎么实现?用takewhile怎么代替while? 解决方案 不考虑过节和轮休,写一个给你 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class P

JavaScript计算两个日期时间段内日期的方法_javascript技巧

本文实例讲述了JavaScript计算两个日期时间段内日期的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /*************************  * 计算两个日期时间段内所有日期  *   * @param value1  *            开始日期 YYYY-MM-DD  * @param value2  *            结束日期  * return 日期数组  */  function dataScope(value1, value2

利用Java中Calendar计算两个日期之间的天数和周数_java

前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同:阴(农)历,每个月固定28天 每周的第一天 - 阳(公)历星期日是第一天:阴(农)历,星期一是第一天 实际上,在历史上有着许多种纪元的方法.它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期.所以为了计时

提高运行效率-源代码去下,用来计算两个日期之间的时间。但是运行特别慢。求大神优化,能让它运行快点

问题描述 源代码去下,用来计算两个日期之间的时间.但是运行特别慢.求大神优化,能让它运行快点 #include using namespace std; const int lmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年每个月份的时间 const int umonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年每个月份的时间,定义符合使用习惯 bool isLeapYear

javaScript 计算两个日期的天数相差(示例代码)_javascript技巧

一:计算两个日期相差的天数 比如:   str1  =  "2002-01-20"   str2  =  "2002-10-11"  怎样用javaScript计算出str1与str2之间相差的天数?  复制代码 代码如下: <html>  <head>  <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312"&

Excel2013,计算两个日期之间工作日的天数

  想知道自己在公司工作了多少天吗?在Excel中,输入起始日期和终止日期,然后用一个NETWORKDAYS函数就能轻松搞定啦!一起来看看具体做法吧. 详细操作步骤 用Excel2013打开一篇有两个日期的工作表,例如,我们现在要计算A列和B列日期之间的工作日的天数,那么,在C2单元格输入函数"=NETWORKDAYS(A2,B2)",完成之后按下回车键. 此时C2单元格中已经计算出了B2和A2日期之间工作日的天数,将鼠标移动到C2单元格的右下方,待光标变成十字状态的时候按下鼠标,并拖