The D3 documentation about time intervals is here:

https://github.com/d3/d3-time/blob/master/README.md.

Functions such as d3.timeHour(aDate), d3.timeSeconds() etc are supposed to return a **time interval.** What these particular functions do return is a Date instance (or something equivalent) on an “interval boundary”. Others, such as d3.timeHour.offset(…) return a single date which is NOT in general on an interval boundary. The function d3.timeHour.range(…) (considered as a single function) returns an array of dates (of interval boundaries).

My question: Why are all these called **time intervals**. The definition of an “interval” is that it consists of two points, so the terminology is nearly 100% inappropriate. If this terminology is just a whim of the developer, then fine - he’s entitled, D3 is a hell of a library. But is there something relevant and important that I am missing because of not understanding the terminology? Something deep relevant to the implementation, for example? In my case, the terminology impeded my absorbing this material for a while.

Thank you.

Steve