时间轴刻度仅在跨天时显示日期echarts 折线配置项内容和展示

首点及跨天时显示日期, 否则只显示时间

配置项如下
      //生成数据
let t = Date.now();
let v = Math.random() * 50 + 300;
const data = Array(1000).fill(0).map(_ => [t += 1e5, v += Math.random() * 21 - 10]);

//处理时间戳
const f = n => `0${n}`.slice(-2); //数字补零
const ts = d => `${f(d.getHours())}:${f(d.getMinutes())}` //时间字符串
const ds = d => `${f(d.getMonth() + 1)}-${f(d.getDate())}` //日期字符串

//临时变量,遍历刻度标签时保存上一个标签的日期值
let tmp = -1;

option = {
    xAxis: {
        type: 'time',
        axisLabel: {
            //总是显示首点(最左)标签(否则标签重叠时有可能不显示)
            showMinLabel: true,

            //格式化刻度标签:跨天时显示日期,否则仅显示时间
            formatter: (v, i) => {
                const d = new Date(v)
                if (tmp !== d.getDate()) {
                    tmp = d.getDate();
                    return `${ts(d)}\n${ds(d)}`;
                } else return `${ts(d)}`;
            }
        }
    },
    yAxis: { type: 'value' },
    series: [{ type: 'line', showSymbol: false, data }]
};

    
截图如下