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

如何获取departDateArr最小时间与arriveDateArr最大时间?

获取日期时间数组的最小/最大值实现方案

问题说明

给定两个日期时间数组:

let departDateArr=['2020-10-13 12:00','2020-10-03 13:00','2020-10-13 8:00','2020-10-16 20:00']
let arriveDateArr=['2022-12-20 00:00','2022-12-20 12:20','2022-12-19 12:20','2022-12-08 12:20']

需要实现:

  • 从departDateArr中提取最小时间值
  • 从arriveDateArr中提取最大时间值

实现方案

由于你提供的日期时间字符串是YYYY-MM-DD HH:mm的标准格式,这种格式的字符串字典排序顺序与时间先后顺序完全一致,因此可以直接利用字符串比较或数组方法快速实现需求,无需复杂的日期转换。

方法1:数组排序直接取值(简洁高效)

这是最轻量化的实现方式:

// 获取departDateArr的最小时间(不修改原数组)
const minDepart = [...departDateArr].sort()[0];
// 结果:'2020-10-03 13:00'

// 获取arriveDateArr的最大时间(不修改原数组)
const maxArrive = [...arriveDateArr].sort().reverse()[0];
// 结果:'2022-12-20 12:20'

注:使用扩展运算符[...arr]创建数组副本,避免sort()方法修改原数组。如果允许修改原数组,直接写departDateArr.sort()[0]即可。

方法2:转换为Date对象比较(兼容非标准格式)

如果需要兼容更多非标准日期格式,或者追求更严谨的时间比较逻辑,可以将字符串转为Date对象,通过时间戳数值进行比较:

// 获取departDateArr的最小时间
const minDepartTimeStamp = Math.min(...departDateArr.map(dateStr => new Date(dateStr).getTime()));
const minDepart = new Date(minDepartTimeStamp).toLocaleString('zh-CN', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit'
}).replace(/\//g, '-');
// 结果:'2020-10-03 13:00'

// 获取arriveDateArr的最大时间
const maxArriveTimeStamp = Math.max(...arriveDateArr.map(dateStr => new Date(dateStr).getTime()));
const maxArrive = new Date(maxArriveTimeStamp).toLocaleString('zh-CN', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit'
}).replace(/\//g, '-');
// 结果:'2022-12-20 12:20'

这种方法兼容性更强,但代码相对繁琐,适合处理格式不统一的日期字符串。


内容的提问来源于stack exchange,提问作者头不痛的无双

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:10:23