如何根据用户区域设置在 Dygraphs 图例中格式化日期和时间

How to format date and time in Dygraphs legend according to user locale

我有一个显示设备随时间变化的功率输出的图表,我想格式化图例,以便它以当前用户所在的位置的样式显示时间戳(例如,在美国,它会显示 MM/DD/YY h:m:s am/pm,在欧盟将显示 DD/MM/YYYY HH:MM:SS,等等)。

目前默认设置如下:

我为 x 轴传入了一个 JS Date() 对象,我发现你可以 modify the x-axis labels,但我找不到任何关于更改图例格式的信息将鼠标悬停在图表上时。

您发现了 axisLabelFormatter 选项,它允许您控制 x 轴上标签的格式。

要控制图例中标签的格式,您需要使用valueFormatter

g = new Dygraph(div, data,
    axes: {
        x: {
            axisLabelFormatter: function (d, gran) {
                return d.toLocaleDateString();
            },
            valueFormatter: function (ms) {
                return new Date(ms).toLocaleDateString();
            }
        }
    }
});

有关完整示例,请参阅 this fiddle。奇怪的是,一个格式化程序函数采用日期,而另一个格式化程序函数采用从纪元开始的毫秒数?是的。不幸的是,这是我们一直坚持的不一致。