根据时间字符串计算时间差
根据时间字符串计算时间差
根据时间戳来除以对应的毫秒,秒,分钟,小时得出来相应的小数点数据,然后根据小数点后数据乘以对应的数值,得出对应的时间
对应关系
ms ==> 1000
s ==> 1000 * 60
min ==> 1000 * 60 * 60
h ==> 1000 * 60 * 60 * 24
/**
* 根居时间字符串计算时间差,
* @param startTime 2020-09-15 15:53:04 开始时间
* @param endTime 2020-09-15 15:53:04 结束时间
* @returns {*} {
* d:天,
* h:小时,
* min:分钟
* s:秒
* ms:毫秒
* }
*/
export const getTimeDifference = ( startTime, endTime) => {
let timeData={}
if(startTime != null ){
let sd = startTime.substring(0, 19).replace(/-/g, '/')// 将时间字符串截取到秒,并将其中的-换成/
let se = '' // 这是定义结束时间,如果为空,就获取当前时间
let cdate = new Date()
if( endTime != null || endTime != ''){
se = endTime.substring(0, 19).replace(/-/g, '/')// 将时间字符串截取到秒,并将其中的-换成/
}else {
se = cdate.getTime()
}
let sde = new Date(se).getTime() - new Date(sd).getTime() // 将时间字符转成时间戳
if(sde > 1){ // 当有差值时,就计算
let a = (sde/1000 + '').split('.') // 这是获取ms
if(a.length>1){
timeData['ms'] = Math.floor(Number('0.'+a[1]*1000))
}
let b = (sde/1000/60 +'').split('.') // 这是获取s
if(b.length>1){
timeData['s'] = Math.floor(Number('0.'+b[1])*60)
}
let c = (sde/1000/60/60 +'').split('.') // 这是获取min
if(c.length>1){
timeData['min'] = Math.floor(Number('0.'+c[1])*60)
}
let d =(sde/1000/60/60/24 +'').split('.') // 这是获取h
if(d.length>1){
timeData['h'] = Math.floor(Number('0.'+d[1])*24)
}
timeData['d'] = Number(d[0]) // 这是获取d
}
}
return timeData;
}
返回值:
{
d:10,
h:10,
min:10,
s:10,
ms:999
}