只是粗略的计算,对差额的时分秒毫秒没有做更具体的处理,原理是通过时间戳计算两个时间点的毫秒差,再换算为天

方式1:

(new Date('2021/04/22').getTime() - new Date('2021/04/20').getTime())/1000/60/60/24;  // 2

发现这样的结果也一样

(new Date('2021/04/22') - new Date('2021/04/20'))/1000/60/60/24

new Date出来的日期类型相运算会隐式转变为时间戳来运算

方式2:

function diffDay(lastDate,earlyDate){
    return (Date.parse(lastDate) - Date.parse(earlyDate))/1000/60/60/24;
}

diffDay('2021/04/22','2021/04/20'); //return 2

getTime 和 Date.parse 都可以转化为时间戳,
getTime 方法是把一个Date对象转成毫秒,Date.parse方法是把一个时间格式的字符串转换成毫秒,都表示从1970年1月1日0时0分0秒距离该时间点所代表的时间毫秒数。

可参考mdn文档:Date.prototype.getTime()Date.parse()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐