export const Date = (date1, date2) => {
console.log(date1, date2)
let str = ''
let state = new Date(date1)
let end = new Date(date2)
console.log(state)
console.log(end)
// 如果开始时间晚于结束时间,交换日期,并记录交换状态
if (state > end) {
const tmp = state
state = end
end = tmp
}
// 分别取二个日期的年、月、日值
const d1 = state.getDate()
const m1 = state.getMonth() + 1
const y1 = state.getFullYear()
const d2 = end.getDate()
const m2 = end.getMonth() + 1
const y2 = end.getFullYear()
// 获取每个月的天数,这里要注意一下闰年的2月
const getMonthDays = function (y, m) {
const aMonthDays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (m === 2 && (y % 400 === 0 || (y % 4 === 0 && y % 100 !== 0))) {
return 29
}
return aMonthDays[m]
}
let y, m, d
let tmpM = 0
let tmpY = 0
// 计算日,不足时向月份借
if (d2 >= d1) {
d = d2 - d1
} else {
tmpM = -1
d = getMonthDays(y1, m1) + d2 - d1
}
// 计算月,不足时向年份借
if (m2 + tmpM >= m1) {
m = m2 + tmpM - m1
} else {
tmpY = -1
m = 12 + m2 + tmpM - m1
}
// 计算年
y = y2 + tmpY - y1
if (y > 0) {
str = y + '年 ' + ('0' + m).substr(-2) + '月 ' + ('0' + d).substr(-2) + '天 '
} else if (m > 0) {
str = m + '月 ' + ('0' + d).substr(-2) + '天 '
} else if (d > 0) {
str = d + '天 '
}
return str
}