github / github/relative-time-element

Stricter `datetime` validation

Open
#266 5 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.