js前端计算两个日期的间隔时间(时间差)

首先说明一下时间戳的概念。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。所以要求两个时间的间隔只需要将两个时间戳相减  就能得到两个时间相差的毫秒数  通过除以3600*1000得到小时数 以此类推。

方法的入参为两个时间字符串,返回结果为xx天xx小时xx分

这里采用获取两个日期的时间戳进行计算

例如:faultDate,completeTime为字符串格式,进行计算之前需要使用new Date()函数进行转化

// 返回格式为xx天xx小时xx分钟
function(faultDate, completeTime) {
      var stime = Date.parse(new Date(faultDat));
      var etime = Date.parse(new Date(completeTime));
      // 两个时间戳相差的毫秒数
      var usedTime = etime - stime;
      // 计算相差的天数  
      var days = Math.floor(usedTime / (24 * 3600 * 1000));
      // 计算天数后剩余的毫秒数
      var leave1 = usedTime % (24 * 3600 * 1000);  
      // 计算出小时数  
      var hours = Math.floor(leave1 / (3600 * 1000));
      // 计算小时数后剩余的毫秒数
      var leave2 = leave1 % (3600 * 1000);        
      // 计算相差分钟数
      var minutes = Math.floor(leave2 / (60 * 1000));
      var time = days + "天" + hours + "时" + minutes + "分";
      return time;
 }

如果不需要天为单位,则直接使用时间戳的差值整除时间单位(时分秒):

小时:3600*1000
分钟:60*1000
秒:1000

JavaScript 获取当前时间戳:

第一种方法:

var timestamp = Date.parse(new Date());

结果:1280977330000
第二种方法:

var timestamp = (new Date()).valueOf();

结果:1280977330748

第三种方法:

var timestamp=new Date().getTime();
结果:1280977330748

第一种:获取的时间戳是把毫秒改成000显示,
第二种和第三种是获取了当前毫秒的时间戳。

你可能感兴趣的:(JavaScript)