前言
??Javascript判斷時間戳/時間日期字符串是否處于今天、本周、當月,三個時間范圍。
??水平有限,可能邏輯會比較繁瑣,如果有更好的方法歡迎賜教。文章來源地址http://www.zghlxwxcb.cn/news/detail-615824.html
- 判斷是否是今天
傳參:param為時間戳(默認) / 日期時間字符串,type為timestamp / datetime
示例:
?todayJudge(1669961510000)
?todayJudge(‘2023-04-16 21:45:00’, ‘datetime’)
todayJudge(param, type = 'timestamp') {
// 如果傳入的時間戳是字符串,需要進行類型轉(zhuǎn)換
if ((typeof param === 'string') && type == 'timestamp') {
param = Number(param)
}
if (type == 'datetime') { // ios日期時間兼容
param = param.replace(/-/g, "/")
}
var currentStamp = new Date().setHours(0,0,0,0) // 當天日期,轉(zhuǎn)換為時間部分為0的時間戳
var paramStamp = new Date(param).setHours(0,0,0,0) // 傳入時間戳,將時間部分轉(zhuǎn)換為0
// 若兩個時間戳相等,說明傳入的時間戳即今天
if (currentStamp == paramStamp) {
return true
}
return false
},
- 判斷是否處于本周
傳參:param為時間戳(默認) / 日期時間字符串,type為timestamp / datetime
示例:
?weekJudge(1669961510000)
?weekJudge(‘2023-04-16 21:45:00’, ‘datetime’)
weekJudge(param, type = 'timestamp') {
// 如果傳入的時間戳是字符串,需要進行類型轉(zhuǎn)換
if ((typeof param === 'string') && type == 'timestamp') {
param = Number(param)
}
if (type == 'datetime') { // ios日期時間兼容
param = param.replace(/-/g, "/")
}
var paramStamp = new Date(param).setHours(0,0,0,0) // 傳入的時間戳,將時間部分轉(zhuǎn)換為0
var currentDate = new Date() // 當天
var currentStamp = currentDate.setHours(0,0,0,0) // 當天日期,轉(zhuǎn)換為時間部分為0的時間戳
var currentDay = currentDate.getDay() == 0 ? 7 : currentDate.getDay() // 當天周幾,取值為(0-6),0為周日,轉(zhuǎn)換為7
console.log('當天周:', currentDay, currentDate)
var dayTime = 24*60*60*1000 // 一天的毫秒數(shù)
var MondayStamp = currentStamp - (currentDay - 1) * dayTime // 本周周一初時間戳(本周一的0點)
console.log('本周周一:', new Date(MondayStamp))
var SundayStamp = currentStamp + (8 - currentDay) * dayTime // 本周周日末時間戳(下周一的0點)
console.log('下周周一:', new Date(SundayStamp))
// 當傳入的時間戳滿足[本周一0點,下周一0點) ,說明傳入的時間在本周內(nèi)
if (paramStamp >= MondayStamp && paramStamp < SundayStamp) {
return true
}
return false
},
- 判斷是否處于當月
傳參:param為時間戳(默認) / 日期時間字符串,type為timestamp / datetime
示例:
?monthJudge(1669961510000)
?monthJudge(‘2023-04-16 21:45:00’, ‘datetime’)
monthJudge(param, type = 'timestamp') {
// 如果傳入的時間戳是字符串,需要進行類型轉(zhuǎn)換
if ((typeof param === 'string') && type == 'timestamp') {
param = Number(param)
}
if (type == 'datetime') { // ios日期時間兼容
param = param.replace(/-/g, "/")
}
var paramDate = new Date(param) // 傳入的參數(shù),轉(zhuǎn)換為date類型
var currentDate = new Date() // 當天
// 當傳入的時間戳轉(zhuǎn)換為日期后,此時的年和月與當天的年和月均相等,說明處于當月
if (paramDate.getFullYear() == currentDate.getFullYear() && paramDate.getMonth() == currentDate.getMonth()) {
return true
}
return false
},
文章來源:http://www.zghlxwxcb.cn/news/detail-615824.html
到了這里,關(guān)于Javascript判斷時間是否處于今天、本周、當月的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!