只比较到天,判断日期是否是今天
按照网上各种普天盖地的答案,也看了非常多。
一般的解决办法都是拿日期的getTime或者字符对比,我之前也是获取到两个日期的年月日在一个if判断,处理方式不太好
function isToday (date1) {
var newDate1 = new Date(date1).setHours(0, 0, 0, 0)
var today = new Date().setHours(0, 0, 0, 0)
// 判断是今天
if (newDate1 === today) {
return true
}
return false
}
简短的几行代码就可以了,完全不需要拿日期的年月日,或者字符串对比
核心思想就是,把两个日期的时分秒毫秒设置相同值,也就是固定了一个参考值,这样只需要直接比较大小就可以
比较到时间点
// 日期是否大于现在的时间点
function isLargeToday (date1) {
var newDate1 = new Date(date1).setMinutes(0, 0, 0)
var today = new Date().setMinutes(0, 0, 0)
// 判断时间大小
if (newDate1 > today) {
return true
}
return false
}
判断今天是否在一个日期范围里
function todayIsInDates (start, end) {
var newStart = new Date(start).setHours(0, 0, 0, 0)
var newEnd = new Date(end).setHours(0, 0, 0, 0)
var today = new Date().setHours(0, 0, 0, 0)
if (newStart <= today && today<= newEnd) {
return true
}
return false
}
优缺点
优
代码量少,性能好,不需要执行js的字符串或者多次获取日期年月日时的方式
缺
带时间点的对比就稍微要改动下代码,如果是对比到小时,则需要设置日期setMinutes,后面的单位以此类推(也不算什么缺点吧)