Shapes and annotations do not handle Date objects or strings with time zones
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 18.3k
- Forks
- 2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 28
Description
At the moment (version 1.25.1), data traces can handle Date objects, which will then be displayed with what seems to be the browser's timezone settings. For example, date = new Date("2017-03-30T00:00:00.000Z") used on the X-axis in a trace, with a browser in the UTC+1 timezone will be displayed as "Mar 30, 2017, 01:00", which is indeed correct.
However, that same date object cannot be used for x0/x1 in a shape on the same object.
When using date.toISOString() instead (both for data and shapes), the timezone indicator (e.g. Z) at the end of the string is ignored and the string is considered to be within the local time zone.
Here is a jsfiddle to demonstrate the problem: https://jsfiddle.net/tkhmx8Le/

Effectively, the problem is two-fold (and might lead to two separate issues):
- It would be good if
shapesandannotationsalso supported date objects. - ISO-8601 date parsing should take into account the
Z(or generally+xxxxor+xx:xx) timezone indicator before building its internal UTC representation. This is certainly related to #1003 (and subsequent work).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the timezone mismatch in the linked JSFiddle, comparing Date objects and ISO-8601 strings in data traces, shapes, and annotations. Read the related work in #1003 and trace the existing date parsing path; done means shapes and annotations accept Date objects and timezone indicators are honored consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100