This took me too long to find the answer for so here it is.
How do you get the tick marks on the x-axis of a time-series chart to be on the hour or on the day with the Angular NVD3 directive?

Well you have to explicitly set the xScale to be a d3 time scale and then you can just set the xAxis to d3.time.days or d3.time.hours and it’ll magically work…

chart: {
    xScale : d3.time.scale(),
        xAxis: {
        ticks: d3.time.days,
        axisLabel: '',
        tickFormat: function(d) {
            return d3.time.format('%Y-%m-%d')(new Date(d));
        showMaxMin: false,

angular nvd3 daily tick labels