Hopefully this will help.
var trace1 = {
x: ['2013-01-01', '2013-01-03', '2013-01-05', '2013-01-07', '2013-01-09', '2013-01-11','2017-01-01', '2017-01-03', '2017-01-05', '2017-01-07', '2017-01-09', '2017-01-11'],
y: [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6],
name: "Measurement",
type: "scatter",
hoverinfo: 'x+y'
};
var data = [trace1];
var date1 = 2;
var date2 = trace1.x.length;
for (var i = date1; i < date2; i++) {
console.log(trace1.x[i]);
}
var layout = {
xaxis: {
rangeselector: {buttons: [
{
step: 'month',
stepmode: 'backward',
count: 1,
label: '1m'
}, {
step: 'month',
stepmode: 'backward',
count: 6,
label: '6m'
}, {
step: 'year',
stepmode: 'todate',
count: 1,
label: 'YTD'
}, {
step: 'year',
stepmode: 'backward',
count: 1,
label: '1y'
}, {
step: 'all'
}
]},
range: [(new Date(trace1.x[date1])).getTime(), (new Date(trace1.x[date2-1])).getTime()],
type: 'date',
title: 'Date', tickformat: '%Y/%m/%d'},
};
Plotly.newPlot('graph', data, layout);
myPlot = document.getElementById('graph');
myPlot.on('plotly_relayout', function () {
var xRange = myPlot.layout.xaxis.range;
var ptsInside = [];
var N = trace1.x.length;
var count = 0;
for (var i = 0; i < N; i++) {
var xi = trace1.x[i];
if (xi > xRange[0] && xi <= xRange[1]) {
console.log(xi);
count++;
ptsInside.push(i);
}
}
});