Good catch, confirmed! This is likely related to d3.time.format() using the browser's timezone for formatting timestamps rather than the UTC timezone. There might be similar lines. I could try to fix this, but I'd prefer to leave this to somebody else who is better at JavaScript development than I.
It seems this is by design - all graphs show the next data point by its individual time interval setting, so the data since the last data point has a place to go. E.g. the last data point of the 5-year-graph is already February 8th, 2017 :) I'd say we leave it like that...
Note the definition of "first" from the Onionoo protocol page: "UTC timestamp (YYYY-MM-DD hh:mm:ss) of the first data point, or more specifically the interval midpoint of the first interval."
Could it be that we're adding the interval seconds once too often for the graph?
I think I found it. The time interval was added BEFORE drawing/labeling each data point, so starting with the very first one, each data point was exactly one time interval in the future. Here's a patch: