JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/1.7.2/moment.min.js"></script>
JavaScript
var data = [
[1357171200000, 1],
[1357344000000, 1],
[1357430400000, 2],
[1357516800000, 2],
[1357689600000, 3],
[1357776000000, 1]
];
$(function () {
var newData = newDataArray(data);
console.log(newData)
log('Original data (dates & difference)');
for (i = 0; i < data.length; i++) {
var d = moment(data[i][0]);
var diff= i>0 ? ' Difference: '+dateDiff(data[i - 1][0], data[i][0]) : '';
log(d.format("MMM D") + diff);
}
log('<br>New data(dates)');
$.each(newData, function (i, item) {
var d = moment(item[0]);
log(d.format("MMM D"));
});
log('<pre>'+JSON.stringify(newData,null,' '))
});
function newDataArray(data) {
var startDay = data[0][0],
newData = [data[0]];
for (i = 1; i < data.length; i++) {
var diff = dateDiff(data[i - 1][0], data[i][0]);
var startDate = new Date(data[i - 1][0]);
if (diff > 1) {
for (j = 0; j < diff - 1; j++) {
var fillDate = new Date(startDate).setDate(startDate.getDate() + (j + 1));
newData.push([fillDate, 0]);
}
}
newData.push(data[i]);
}
return newData;
}
function log(text) {
$('body').append(text + '<br>');
}
function dateTextUsingMoment(timeStamp) {
return moment(timeStamp).format("MMM D");
}
function dateDiff(d1, d2) {
return Math.floor((d2 - d1) / (1000 * 60 * 60 * 24));
}