console.log(new Date("2022-02-22").getMonth())
console.log(new Date("2022,02,22").getMonth())
console.log(new Date(2022,0o2,22).getMonth())
function getDateDiff(dateTimeStamp) {
let compareTime = new Date(dateTimeStamp)
let timestamp = compareTime.getTime();
let compareHour = compareTime.getHours()
let compareMinute = compareTime.getMinutes()
let minute = 1000 * 60;
let hour = minute * 60;
let day = hour * 24;
let halfamonth = day * 15;
let month = day * 30;
let year = day * 365;
let now = new Date().getTime();
let diffValue = now - timestamp;
let result;
if (diffValue < 0) {
throw new Error("不能选未来的时间")
}
let yearC = diffValue / year;
let monthC = diffValue / month;
let weekC = diffValue / (7 * day);
let dayC = diffValue / day;
let hourC = diffValue / hour;
let minC = diffValue / minute;
if (isLastYesterday(timestamp)) {
result = `前天${zeroize(compareHour)}:${zeroize(compareMinute)}`
} else if (isYesterday(timestamp)) {
result = `昨天${zeroize(compareHour)}:${zeroize(compareMinute)}`
} else if (yearC >= 1) {
result = `${parseInt(yearC)}年前`
} else if (monthC >= 1) {
result = `${parseInt(monthC)}月前`
} else if (weekC >= 1) {
result = `${parseInt(weekC)}周前`
} else if (dayC >= 1) {
result = `${parseInt(dayC)}天前`
} else if (hourC >= 1) {
result = `${parseInt(hourC)}小时前`
} else if (minC >= 1) {
result = `${parseInt(minC)}分钟前`
} else {
result = "刚刚"
}
return result;
}
function zeroize(num) {
return num < 10 ? "0" + num : num
}
function isYesterday(time) {
const date = new Date();
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const today = `${year}/${month}/${day}`;
const todayTime = new Date(today).getTime();
const yesterdayTime = new Date(todayTime - 24 * 60 * 60 * 1000).getTime();
return time < todayTime && yesterdayTime <= time;
}
function isLastYesterday(time) {
const twentyFourHours = 24 * 60 * 60 * 1000;
const fortyEightHours = 24 * 60 * 60 * 1000 * 2;
const date = new Date();
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const today = `${year}/${month}/${day}`;
const todayTime = new Date(today).getTime();
const yesterdayTime = new Date(todayTime - twentyFourHours).getTime();
const lastYesterdayTime = new Date(todayTime - fortyEightHours).getTime();
return time < yesterdayTime && lastYesterdayTime <= time;
}