按時間戳計算
export const dateDiff = (date1, date2, type) => {
date1 = typeof date1 === 'string' ? new Date(date1) : date1
date1 = date1.getTime()
date2 = typeof date2 === 'string' ? new Date(date2) : date2
date2 = date2.getTime()
type = type || 'hour'
var diffValue = Math.abs(date2 - date1)
var second = 1000
var minute = second * 60
var hour = minute * 60
var day = hour * 24
var month = day * 30
var year = month * 12
var timeType = {
second: second,
minute: minute,
hour: hour,
day: day,
month: month,
year: year
}
return Math.ceil(diffValue / timeType[type])
}
年相減、月相減、日相減 計算
export const dateDiffT = (date1, date2) => {
var date1Date = new Date(date1)
var date1Day = date1Date.getDate()
var date1Month = date1Date.getMonth() + 1
var date1Year = date1Date.getFullYear()
date2 = new Date(date2).getTime() + 1000 * 60 * 60 * 24
var date2Date = new Date(date2)
var date2Day = date2Date.getDate()
var date2Month = date2Date.getMonth() + 1
var date2Year = date2Date.getFullYear()
var day = Math.abs(date2Day - date1Day)
var month = Math.abs(date2Month - date1Month)
var year = Math.abs(date2Year - date1Year)
return (year ? year + '年' : '') + (month ? month + '個月' : '') + (day ? day + '天' : '')
}
功能改進
export const dateDiffT = (date1, date2) => {
var date1Date = new Date(date1)
var date1Day = date1Date.getDate()
var date1Month = date1Date.getMonth() + 1
var date1Year = date1Date.getFullYear()
if ((!(date1Month === 1 && date1Day === 1)) && new Date(date2).getMonth() === 11 && new Date(date2).getDate() === 31) {
date2 = new Date(date2)
} else if (date1Month === 1 && date1Day === 1 && new Date(date2).getMonth() === 11 && new Date(date2).getDate() === 31) {
date2 = new Date(date2).getTime() + 1000 * 60 * 60 * 24
} else {
date2 = new Date(date2).getTime() + 1000 * 60 * 60 * 24
}
var date2Date = new Date(date2)
var date2Day = date2Date.getDate()
var date2Month = date2Date.getMonth() + 1
var date2Year = date2Date.getFullYear()
var day = Math.abs(date2Day - date1Day)
var month = Math.abs(date2Month - date1Month)
var year = Math.abs(date2Year - date1Year)
return (year ? year + '年' : '') + (month ? month + '個月' : '') + (day ? day + '天' : '')
}