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

如何在JavaScript中获取按日期时间排序的最新JSON数据

解决方案

核心逻辑:接口返回的数组顺序可能随后续业务调整发生变化,不建议直接依赖现有固定索引取值,手动按日期时间字段对数组排序后取值的兼容性更高。


实现代码

假设返回的每条数据中,日期时间对应的字段名为datetime,取值为可被Date对象正常解析的标准时间格式(如ISO时间、常规日期字符串),完整可运行代码如下:

const api_url = 'json.php'
async function getjson() {
    const response = await fetch(api_url);
    const data = await response.json();
    // 按日期时间降序排序:最新的数据排在数组最前面
    const sortedData = data.sort((a, b) => new Date(b.datetime) - new Date(a.datetime));
    // 取排序后数组的第一条就是最新数据
    const latestData = sortedData[0];
    console.log('最新数据:', latestData);
    return latestData;
}

补充说明

  • 如果你的日期时间字段存储的是10位/13位数字时间戳,可以省去new Date()转换步骤,直接写data.sort((a, b) => b.timestamp - a.timestamp)即可,性能更好。
  • 如果后续数据量增长到万条以上,不需要全量排序的话,可以直接遍历一次数组找出最大日期对应的数据,性能开销更低:
async function getjson() {
    const response = await fetch(api_url);
    const data = await response.json();
    let latestData = data[0];
    for (const item of data) {
        if (new Date(item.datetime) > new Date(latestData.datetime)) {
            latestData = item;
        }
    }
    console.log('最新数据:', latestData);
    return latestData;
}
  • 请将上述代码中的datetime、timestamp替换为你实际JSON结构中日期时间对应的字段名即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:03