You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计含空值的日期数组中未来日期的数量?

统计数组中未来日期的数量

嘿,这问题很好解决!咱们一步步处理你这个带null值的日期数组,统计出其中未来日期的总数:

核心思路

  1. 先过滤掉数组里的null(以及其他无效假值)
  2. 将有效的日期字符串转换成Date对象
  3. 对比每个日期是否晚于当前时间
  4. 统计符合条件的日期数量

完整代码示例

// 你的日期数组
const dates = [ "2018-04-02T15:15", "2018-04-07T14:20", "2018-04-28T11:50", null, null, null, null, "2018-05-30T17:45", "2018-04-07T16:20" ];
// 获取当前时间的Date对象
const currentTime = new Date();

// 统计未来日期数量
const futureDateCount = dates.filter(date => {
  // 第一步:跳过null和其他假值
  if (!date) return false;
  
  // 第二步:把字符串转成Date对象,同时校验转换是否有效
  const dateObj = new Date(date);
  if (!(dateObj instanceof Date) || isNaN(dateObj)) {
    return false;
  }
  
  // 第三步:判断是否是未来日期
  return dateObj > currentTime;
}).length;

console.log(futureDateCount); // 输出符合条件的数量

代码细节说明

  • 过滤无效值:if (!date)会直接跳过null、空字符串等假值,避免后续日期转换出错
  • 日期有效性校验:如果遇到格式不标准的日期字符串,new Date()会返回Invalid Date,用isNaN(dateObj)可以检测这种情况,确保只处理有效的日期
  • 时间对比:Date对象可以直接用比较运算符(>)对比,本质是比较它们的时间戳(从1970年至今的毫秒数)

如果你的数据源能保证所有非null的字符串都是有效日期格式,还可以简化代码,牺牲一点健壮性换简洁:

const futureDateCount = dates.filter(date => date && new Date(date) > new Date()).length;

内容的提问来源于stack exchange,提问作者nicogaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:38:40