js计算两个时间点的时间差

本文介绍了一种使用JavaScript实现的时间差计算方法,包括将字符串形式的日期转换为时间戳、计算两个时间点之间的差值,并提供了格式化输出时间差的功能。

//调用该方法(主方法)
function dateDiff(date1, date2){
    var type1 = typeof date1, type2 = typeof date2;
    if(type1 == 'string')
    date1 = stringToTime(date1);
    else if(date1.getTime)
    date1 = date1.getTime();
    if(type2 == 'string')
    date2 = stringToTime(date2);
    else if(date2.getTime)
    date2 = date2.getTime();
    return (date1 - date2) / 1000;//除1000是毫秒,不加是秒
}
//字符串转成Time(dateDiff)所需方法
function stringToTime(string){
    var f = string.split(' ', 2);
    var d = (f[0] ? f[0] : '').split('-', 3);
    var t = (f[1] ? f[1] : '').split(':', 3);
    return (new Date(
    parseInt(d[0], 10) || null,
    (parseInt(d[1], 10) || 1)-1,
    parseInt(d[2], 10) || null,
    parseInt(t[0], 10) || null,
    parseInt(t[1], 10) || null,
    parseInt(t[2], 10) || null
    )).getTime();
}
//调用 dateDiff("2009-10-10 19:00:00","2009-10-10 18:00:00")

     var date = new Date();     
     var stime = rec.startTime; 
           return shapeTimeformat(dateDiff(date.getTime(), stime)*1000); 

function shapeTimeformat(time){
 
 var Min = 60,  //分
  Hr = Min * 60, //小时
  now = time/1000,
  h = Math.floor(now/Hr),
  m = Math.floor((now%Hr)/Min),
  s = Math.floor((now%Hr)%Min);
 time = null;
 return ((h < 10 ? '0' : '')+h) + ((m < 10 ? ':0' : ':')+m) + ((s < 10 ? ':0' : ':')+s);
 
}

### 如何用 JavaScript 计算两个时间戳之间的时间差JavaScript 中,可以通过简单的减法操作来计算两个时间戳之间的差异。时间戳通常表示自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的毫秒数。以下是实现这一功能的具体方法: #### 时间戳的基础概念 JavaScript 的 `Date` 对象可以用来获取当前时间或者指定日期的时间戳。通过调用 `getTime()` 方法可以从一个 `Date` 实例中提取出以毫秒为单位的时间戳[^1]。 #### 计算时间差的方法 要计算两个时间戳之间的差异,只需将较大的时间戳减去较小的时间戳即可得到它们之间的毫秒级差异。之后可以根据需求将其转换成其他单位(如秒、分钟、小时等)。下面是一个完整的函数示例: ```javascript function getTimeDifference(timestamp1, timestamp2) { const diffInMilliseconds = Math.abs(timestamp1 - timestamp2); // 获取绝对值差异 const seconds = Math.floor(diffInMilliseconds / 1000); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); const days = Math.floor(hours / 24); return { milliseconds: diffInMilliseconds, seconds: seconds % 60, minutes: minutes % 60, hours: hours % 24, days: days }; } // 使用例子 const date1 = new Date('2023-01-01T00:00:00Z').getTime(); const date2 = new Date('2023-01-02T12:30:45Z').getTime(); console.log(getTimeDifference(date1, date2)); ``` 此代码定义了一个名为 `getTimeDifference` 的函数,该函数接受两个时间戳作为参数并返回一个对象,其中包含了两者间的时间差分别以毫秒、秒、分、小时以及天的形式表达[^2]。 #### 转换到不同时间单位 如果只需要特定单位的结果,则可以直接调整上述逻辑中的除法部分。例如仅需知道相差多少整天时可忽略更小粒度的数据[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值