You don't understand time. You might think you do, but you don't.
Keep this in mind next time you want to add 3,600 seconds to a timestamp to advance it by an hour, or basically now+24*3600
is tomorrow.
Time is a complicated beast. An hour can last 3600 seconds or 3599 seconds, if there's a leap second. Tomorrow can be 23 to 25 hours away, months range from 28 to 31 days, and a year can be 365 or 366 days. Some decades have fewer days than others.
Considering many datasets are closely tied to time, this can become a big problem. Just how do you handle time?
Luckily, d3.js comes with a bunch of time-handling features.
You can create a new formatter by giving d3.time.format()
a format string. You can then use it for parsing strings into Date
objects and vice-versa.
The whole language is explained in the documentation of d3.js, but let's look at a few examples:
> format = d3.time.format('%Y-%m-%d') > format.parse('2012-02-19') Sun Feb 19 2012 00:00:00 GMT+0100 (CET)
We defined...