You're using the .date
attribute to determine the y
position of the nodes, so you need to do the same to determine the start/end points of the links. You can modify the projection of the diagonal to also use .date
(if it's present) to determine the y
position:
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.x, d.date ? +d.date : d.y]; });