首页 > 解决方案 > 检查除初学者值以外的值范围内的日期

问题描述

我想检查日期范围之间的时间。我写了这段代码:

  const twoDayLater = new Date(new Date().getTime() + 2 * 24 * 60 * 60 * 1000)
  const OneDayLater = new Date(new Date().getTime() + 1 * 24 * 60 * 60 * 1000)
  const runOfOutUsers = await SubscriptionExtention.find({ expireTime: { $gt: OneDayLater, $lte: twoDayLater } })

但我不想接受过期时间字段等于 OneDayLater 的文件。用数学的话来说,我想检查 expiretime = (OneDayLater, twoDayLater]。我该怎么做?

标签: node.jsmongodb

解决方案


$gt并且$lte工作在毫秒级别,不会影响一天

此外,如果您指的是一天的粒度,则仅(OneDayLater, twoDayLater]表示所有订阅twoDayLater。并设置:

const twoDayLater = new Date(new Date().getTime() + 2 * 24 * 60 * 60 * 1000)

const startOfDay = new Date(twoDayLater).setHours(0,0,0,0); 
const endOfDay = new Date(twoDayLater).setHours(23,59,59,999);

const runOfOutUsers = await SubscriptionExtention.find({ expireTime: { $gte: startOfDay, $lte: endOfDay } })

推荐阅读