在项目中,有时候我们需要获取两个日期相差的天数做逻辑处理,那怎么获取呢?
思路:
分别获取两个日期的时间戳,相减得到数值是毫秒,再换算成天(即除以1 * 24 * 60 * 60 * 1000)即可。
/**
* @param startDate 开始日期 yyyy-MM-dd
* @param enDate 结束日期 yyyy-MM-dd
* @returns {number} 两日期相差的天数
*/
function getDaysBetween(startDate, enDate) {
const sDate = Date.parse(startDate)
const eDate = Date.parse(enDate)
if (sDate > eDate) {
return 0
}
// 这个判断可以根据需求来确定是否需要加上
if (sDate === eDate) {
return 1
}
const days = (eDate - sDate) / (1 * 24 * 60 * 60 * 1000)
return days
}
const d1 = '1900-01-01'
const d2 = '2021-03-22'
const days = getDaysBetween(d1, d2)
console.log(days) // 输出结果为44275