class DATE {
//本库制作者 : 米坛淘汰郎,你们爱用拿去用
static getLastDay(year, month) {
const isLeapYear = ((year % 4) == 0) && ((year % 100) != 0) || ((year % 400) == 0)
const maxDays = [1, 3, 5, 7, 8, 10, 12]
const middleDays = [4, 6, 9, 11]
month = Number(month)
if (month == 2) {
if (isLeapYear) {
return 29
} else {
return 28
}
} else if (maxDays.includes(month)) {
return 31
} else if (middleDays.includes(month)) {
return 30
}
}
static ifChange(toms = Date.now(), testms, type, debug = false) {
let temp = Array(3)
switch (type.toLowerCase()) {
case "time":
if (testms < toms) {
return true
} else {
return false
}
case "second":
temp[0] = (new Date(testms))
temp[0].setMilliseconds(999)
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一秒或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
case "minute":
temp[0] = (new Date(testms))
temp[0].setSeconds(59, 999)
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一分或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
case "hour":
temp[0] = (new Date(testms))
temp[0].setMinutes(59, 59, 999)
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一小時或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
case "date":
temp[0] = (new Date(testms))
temp[0].setHours(23, 59, 59, 999)
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一天或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
case "month":
temp[0] = (new Date(testms))
temp[0].setHours(23, 59, 59, 999)
temp[0].setDate(this.getLastDay(temp[0].getFullYear(), temp[0].getMonth() + 1))
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一月或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
case "year":
temp[0] = (new Date(testms))
temp[0].setHours(23, 59, 59, 999)
temp[0].setMonth(12, this.getLastDay(temp[0].getFullYear(), temp[0].getMonth() + 1))
temp[0] = temp[0].getTime()
if (temp[0] > toms) {
if (debug) {
console.log((new Date(temp[0]).toLocaleString()) + '\n在\n' + (new Date(toms).toLocaleString()) + '\n同一月或之前')
}
return false
} else {
if (debug) {
console.log((new Date(toms).toLocaleString()) + '\n在\n' + (new Date(temp[0]).toLocaleString()) + '\n之后')
}
return true
}
default:
break;
}
}
}