使用dayjs判断MongoDB返回的日期是否至少已过去5分钟
功能实现方案
MongoDB返回的是标准ISO 8601格式的UTC时间字符串,dayjs原生支持直接解析该格式,无需额外做格式转换。
核心逻辑非常简单:先计算当前时间往前推5分钟的时间节点,只要待判断的日期早于或等于这个节点,就说明是至少5分钟之前的时间。
完整代码实现
// 入参为MongoDB返回的ISO格式时间字符串 function isAtLeast5MinutesAgo(targetDateStr) { // 生成当前时间减去5分钟的时间节点 const fiveMinutesAgo = dayjs().subtract(5, 'minute'); // 反向判断:目标时间如果不在5分钟前到当前的时间区间内,就满足条件 return !dayjs(targetDateStr).isAfter(fiveMinutesAgo); } // 测试样例 const sampleDate = '2021-11-04T12:20:46.485Z'; console.log(isAtLeast5MinutesAgo(sampleDate)); // 返回布尔值true/false
可选配置说明
- 如果只需要比对到分钟级(忽略秒、毫秒差异),可以给
isAfter方法传入第二个粒度参数:!dayjs(targetDateStr).isAfter(fiveMinutesAgo, 'minute') - 不需要额外处理时区偏移:时间字符串后缀的
Z代表UTC标准时间,dayjs会自动做时区对齐,比较结果不会出现时区偏差
内容的提问来源于stack exchange,提问作者Daniel Shen
相关产品推荐
相关产品推荐

