github / github/relative-time-element
Stricter `datetime` validation
- Dominant language
- JavaScript
- Stars
- 4k
- Forks
- 192
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 5
Description
The [docs about the `datetime`](https://github.com/github/relative-time-element#datetime-string) attribute say:
> This must be a valid [ISO8601 DateTime](https://en.wikipedia.org/wiki/ISO_8601)
This statement is incorrect. Any value that can be passed to the [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format) will work which presents a cross-browser issue because JS engines are inconsistent in which formats their `Date` constructor accept.
For example, the golang default string representation only parses in v8:
```bash
$ eshost -e "new Date('2009-11-10 23:00:00+00:00 UTC')"
#### JavaScriptCore
Invalid Date
#### spidermonkey
Invalid Date
#### v8
Wed Nov 11 2009 00:00:00 GMT+0100 (Central European Standard Time)
```
Also try [this fiddle](https://jsfiddle.net/silverwind/m425n0yg/) in multiple browsers.
How about adding an option attribute to pass in a validation regex into the element to validate the passed dates, when present? This would at least not make this issue missable by developers who only test in Chrome.
Contributor guide
Assessment
This issue has not been assessed yet.