[whatwg] Dates BCE

Tab Atkins Jr. jackalmage at gmail.com
Thu Jul 30 07:16:05 PDT 2009

On Thu, Jul 30, 2009 at 8:43 AM, Elliotte Rusty
Harold<elharo at ibiblio.org> wrote:
> I note in http://www.whatwg.org/specs/web-apps/current-work/#valid-date-string
> that "Dates before the year zero can't be represented as a datetime in
> this version of HTML." This seems a serious omission. Why can we
> represent the birth of Nero but not the birth of Julius Caesar? Are
> there plans to rectify it?

There have been *long* debates on this.

Basically, it all revolves around calendars, and the fact that, before
the current Gregorian calendar was adopted, dates were *much* more
complicated, and hard to pin down in a definite way.  As noted in the
spec, the current Gregorian calendar was first adopted in some
countries in the 16th century, though it wasn't fully adopted
everywhere until the mid-20th century.

For dates, before that, you have to do some conversion to get it "on
track" with regards to our current calendar.  As you go further back
the conversion gets more difficult, depending on archeology,
essentially, and eventually becomes impossible.

The only reason the spec blesses dates back to 0 is because it's easy
to do when you're already blessing dates back to 1500 or so.  It
doesn't require a single extra step in the algorithm.  By the time you
actually *hit* that point, though, you're already pretty much in the
"have to be a historical scholar, and be pretty lucky, to figure this
out" range.

In addition, note the use-case for <time>.  It is *not* meant to be a
general text-level semantic for dates.  It's designed to make it easy
to machine-parse dates around the current era for use in calendar
applications, etc.  (For example, one could automatically save an
event from a page onto your calendar.)  Plotting the birth of Julius
Ceasar on a calendar may be an interesting way to bring that time
period to life, but it's not really useful in the way that actual
calendar applications are intended.

Note: you *can* still mark up years BCE in HTML5!  "<p>This event
happened in 5 BCE</p>" is perfectly valid.  There's no easy
machine-parseable metadata in there, but so far there hasn't been much
presented that would require such a thing.

As Bruce said, if you have some concrete use-cases for why you need to
mark-up the date in a machine-readable manner, rather than simply
having it within the text of your site, please share!


More information about the whatwg mailing list