在这里先谢谢各位大哥大姐来抽空回答我的问题!
let startTime = '2020-07-08 13:24:27'
let endTime = '2020-07-10 16:10:27'
我应该怎么算出这两个时间相差多少秒呢,
还有一种情况是
let startTime = '2020-07-08'
let endTime = '2020-07-10'
在这里先谢谢各位大哥大姐来抽空回答我的问题!
let startTime = '2020-07-08 13:24:27'
let endTime = '2020-07-10 16:10:27'
我应该怎么算出这两个时间相差多少秒呢,
还有一种情况是
let startTime = '2020-07-08'
let endTime = '2020-07-10'
// => 182760000 毫秒
new Date('2020-07-10 16:10:27').getTime()-new Date('2020-07-08 13:24:27').getTime()
//获取时间差
var TimeDifference = (date,date1)=>{
var startDate = date;
var oldTime = date1
oldTime = oldTime.replace(new RegExp("-","gm"),"/");
startDate= startDate.replace(new RegExp("-","gm"),"/");
var newTime = (new Date(startDate)).getTime(); //得到毫秒数
var endTime = (new Date(oldTime)).getTime(); //得到毫秒数
var Time = (newTime - endTime)/1000
var dates = new Date(Time)
var day = setDb(Math.floor(Time / 60 / 60 / 24)); //天数
var hour = setDb(Math.floor(Time / 60 / 60) % 24); //时
var min = setDb(Math.floor(Time / 60) % 60); //Math.floor(num / 60) % 60 分
var sec = setDb(Math.floor(Time % 60)); //06 秒
return {
day:day,
hour:hour,
min:min,
sec:sec,
time:Time
}
}
思路:
你的两个字符串的时间格式都可是被Date类的构造函数所接受的,所以可以直接创建对应的 Date 对象。
Date.prototype.getTime() 函数可以获取 Date对象所表示的毫秒值,两者相减即可获得相差的毫秒数。
将毫秒除以 1000 即可得到相差的秒数。
核心代码:
const startDate = new Date(startTime)
const endDate = new Date(endTime)
const diffInMills = endDate.getTime() - startDate.getTime()
const diffInSec = diffInMills / 1000
console.log('diff second(s):', diffInSec)
套入你给的示例:
let startTime = '2020-07-08 13:24:27'
let endTime = '2020-07-10 16:10:27';
//
// or
//
// let startTime = '2020-07-08'
// let endTime = '2020-07-10'
const startDate = new Date(startTime)
const endDate = new Date(endTime)
const diffInMills = endDate.getTime() - startDate.getTime()
const diffInSec = diffInMills / 1000
// 182760
// 172800
console.log('diff second(s):', diffInSec)
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
12 回答5.8k 阅读
3 回答10.3k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
因为你给出的时间字符串是符合Date对象解析初始化的字符串,所以处理相对比较简单
getTime
方法返回值分别表征从Jan 1, 1970, 00:00:00.000 GMT
起经历的毫秒数。对应代码为
不过需要注意的是,其实Date的构造函数解析日期字符串能力囿于具体的浏览器实现,可能有差异,有时并不推荐直接采用,而是自行构建 解析处理方法,