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

如何生成覆盖过去30天的X轴数值?

没问题!生成过去30天的X轴其实比单个月份更直接——核心思路就是从**今天(或你指定的结束日期)**往前推30天,生成连续的日期序列就行。下面给你几个常用场景的实现方案,你可以直接套用:

Python 实现(适合数据分析/可视化场景)

基础版(纯标准库)

如果不用第三方库,用Python自带的datetime就能搞定:

from datetime import datetime, timedelta

# 结束日期设为今天,也可以替换成你需要的特定日期
end_date = datetime.today().date()
# 生成过去30天的日期列表
x_axis_dates = [end_date - timedelta(days=i) for i in range(30)]
# 反转后日期会从最早到最晚(根据你的图表需求选择是否反转)
x_axis_dates.reverse()

# 按需格式化日期,比如转成YYYY-MM-DD字符串
formatted_dates = [date.strftime("%Y-%m-%d") for date in x_axis_dates]

进阶版(用Pandas,更高效)

如果用Pandas做数据分析或可视化,生成日期序列会更简洁:

import pandas as pd

# 生成过去30天的日期范围,freq='D'表示按天生成
x_axis_dates = pd.date_range(end=datetime.today(), periods=30, freq='D')
# 转成需要的字符串格式
formatted_dates = x_axis_dates.strftime("%Y-%m-%d").tolist()

JavaScript 实现(适合前端图表如 ECharts、Chart.js)

前端场景下,用原生Date对象就能生成:

function getLast30Days() {
    const dates = [];
    const today = new Date();
    // 从29天前到今天,共30天
    for (let i = 29; i >= 0; i--) {
        const targetDate = new Date(today);
        targetDate.setDate(today.getDate() - i);
        // 格式化为YYYY-MM-DD,可根据需求改成MM/DD等格式
        dates.push(targetDate.toISOString().split('T')[0]);
    }
    return dates;
}

// 调用得到X轴日期数组
const xAxisDates = getLast30Days();

关键注意事项

  • 日期格式:根据你使用的图表库要求调整格式,比如有的需要时间戳,有的需要短日期格式,直接在格式化步骤修改即可。
  • 边界控制:如果不需要包含今天,把循环里的i >= 0改成i >= 1,这样就从昨天往前推29天,总共30天。
  • 时区问题:如果是跨时区应用,记得统一时区(比如转成UTC),避免出现日期偏移的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:16:13