请教一个js 的日期问题

现在我有一个list 数据是这样的

            list:[
                {startDate:"2022-3-1",endDate:"2022-3-3"},
                {startDate:"2022-3-7",endDate:"2022-3-10"}
            ],

还有一个当前时间

nowDate:"2022-3-1",

list 包含3月1日-3月3日和3月7日-3月10日,那么nowDate不能是3月1日、3月2日以及3月7日、3月8日、3月9日,即nowDate不能list 结束时间以外的日期重叠。需要一个函数进行判断nowDate是否符合list 里面的日期判定,如果可以为true,如果不行为false

阅读 1.8k
3 个回答

日期格式一直不需要转成日期,可以直接比较,但是从"2022-3-3"和"2022-3-10"可以看出来,格式不一样

nowDate =  new Date(nowDate)
list.every(item => {
    return !(nowDate >= new Date(item.startDate) && nowDate < new Date(item.endDate))
})

如果是ie低版本也要注意new Date时"2022-3-3"要转成"2022/3/3"

日期格式一致的话 直接字符串比较就行吧

简单粗暴就直接比较,值两端会隐式转换成数学式。
精确点儿的比较就用new Date的getTime获取时间戳比较

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题