Displaying ISO Week Number in labels using labelFormatter - CanvasJS JavaScript Charts
Displaying ISO Week Number in labels using labelFormatter - CanvasJS JavaScript Charts
by canvasjs
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
JavaScript
var chart = new CanvasJS.Chart("chartContainer",{
title: {
text: "Displaying ISO Week Number in Label"
},
axisX:{
labelMaxWidth: 70,
labelWrap: true,
labelFormatter: function(e){
var dt = new Date(e.value);
var isoWeek = 0;
var tdt = new Date(dt.valueOf());
var dayn = (dt.getDay() + 6) % 7;
tdt.setDate(tdt.getDate() - dayn + 3);
var firstThursday = tdt.valueOf();
tdt.setMonth(0, 1);
if (tdt.getDay() !== 4)
{
tdt.setMonth(0, 1 + ((4 - tdt.getDay()) + 7) % 7);
}
isoWeek = 1 + Math.ceil((firstThursday - tdt) / 604800000);
return CanvasJS.formatDate(e.value, "D/MM/YY") + ", Week: "+ isoWeek;
}
},
axisY: {
valueFormatString: "#,###"
},
data: [
{
type: "area",
color: "rgba(0,75,141,0.7)",
dataPoints: [
{ x: new Date(2018, 00, 7), y: 1 },
{ x: new Date(2018, 00, 14), y: 6 },
{ x: new Date(2018, 00, 21), y: 4 },
{ x: new Date(2018, 00, 28), y: 3 },
{ x: new Date(2018, 01, 5), y: 7 },
{ x: new Date(2018, 01, 12), y: 4 },
{ x: new Date(2018, 01, 19), y: 6 }
]
}
]
});
chart.render();