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

如何对比数据库日期并按日期分组存储对象?

按日期(忽略时分秒)分组对象的实现方案

完全可以实现,核心思路是提取每个对象日期的纯日期部分作为分组键,将同日期的对象归类到对应数组中。以下是具体实现(以JavaScript为例,适配网站开发场景):

基础分组实现

假设你从数据库获取的对象数组为items,每个对象包含存储日期的字段(比如createTime):

// 示例原始数据
const items = [
  { id: 1, createTime: "2022-10-13 02:07:11", content: "示例内容1" },
  { id: 2, createTime: "2022-10-13 15:30:00", content: "示例内容2" },
  { id: 3, createTime: "2022-10-14 09:15:22", content: "示例内容3" }
];

// 初始化分组容器
const groupedByDate = {};

// 遍历对象进行分组
items.forEach(item => {
  // 提取日期部分(利用固定格式截取前10位,高效直接)
  const dateKey = item.createTime.slice(0, 10);
  // 若该日期的数组未初始化,先创建空数组
  if (!groupedByDate[dateKey]) {
    groupedByDate[dateKey] = [];
  }
  // 将当前对象推入对应日期的数组
  groupedByDate[dateKey].push(item);
});

执行后,groupedByDate会生成以日期字符串为键、对应对象数组为值的结构:

{
  "2022-10-13": [ {id: 1, ...}, {id: 2, ...} ],
  "2022-10-14": [ {id: 3, ...} ]
}

可选:组内按时间排序

如果需要每个日期组内的对象按具体时分秒排序,可以在分组后补充排序逻辑:

// 遍历所有日期组,按创建时间升序排序
Object.keys(groupedByDate).forEach(dateKey => {
  groupedByDate[dateKey].sort((a, b) => {
    return new Date(a.createTime) - new Date(b.createTime);
  });
});

通用日期提取方案(适配更多格式)

如果后续日期格式可能变化,也可以用Date对象提取标准日期字符串:

const dateKey = new Date(item.createTime).toISOString().split('T')[0];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:01:05