如何根据用户区域设置在 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。奇怪的是,一个格式化程序函数采用日期,而另一个格式化程序函数采用从纪元开始的毫秒数?是的。不幸的是,这是我们一直坚持的不一致。
我有一个显示设备随时间变化的功率输出的图表,我想格式化图例,以便它以当前用户所在的位置的样式显示时间戳(例如,在美国,它会显示 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。奇怪的是,一个格式化程序函数采用日期,而另一个格式化程序函数采用从纪元开始的毫秒数?是的。不幸的是,这是我们一直坚持的不一致。