github / github/relative-time-element

Stricter `datetime` validation

Offen
#266 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement help wanted
Vorherrschende Sprache
JavaScript
Sterne
4k
Forks
192
Ø Merge
1 T. 10 Std.
Gemergte PRs (30 T.)
5

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der Dokumentation zum datetime-Attribut und dem im Issue beschriebenen Verhalten des JavaScript Date-Konstruktors und vergleiche anschließend die verlinkten browserübergreifenden Beispiele. Definiere das Verhalten der Validierung und der regex-option, einschließlich dessen, was bei inkonsistenten Datumszeichenfolgen geschehen soll; abgeschlossen ist die Aufgabe, wenn das erwartete Verhalten dokumentiert und in allen betroffenen Browsern validiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
frontend, web-dev
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.