如何将年中的某一天(0-365)转换为实际日期并将值设置为x轴

时间:2018-03-09 00:13:34

标签: javascript jquery canvasjs

我有一个文本文件,其中包含一年中的某一天作为列和与之关联的值。

类似这样的事情

day value
59   0.2
60   0.6
63  5.07

这里的日期栏代表一年中的一天,即59 / 365,60 / 365,63 / 365。

dataPoints.push({x: parseFloat(x1), y: parseFloat(y1)});// x1 and y1 are variables containing "59" and "0.2" .

我能够获取这些数据并将它们作为x和y坐标推送,并使用CanvasJS显示折线图。

但我试图在x轴上显示实际日期,以便值对应于特定日期  即3月6日,3月1日,2月28日。

如何将日期转换为实际日期,然后将其传递给dataPoints。

2 个答案:

答案 0 :(得分:2)

您可以计算毫秒数并使用函数toLocaleString来获取月份和日期。

重要:小心闰年。

var day = 59;
var date = new Date(day * 24 * 60 * 60 * 1000); // This will place that date in YEAR 1970.

var options = { month: 'short', day: 'numeric' };
console.log(date.toLocaleString('us', options))

文档

答案 1 :(得分:2)

您可以按如下方式获取一年中某一天的日期:

var dayOfYear = 63;
var initialDate = new Date(2018, 0); // initialized at first day of 2018
var date = new Date(initialDate.setDate(dayOfYear)); // add your dayOfYear