XHTML 2.0 <datetime> element proposal

Hi,
  I would like to propose that XHTML implement a <datetime> element for 
the purpose of rendering, obviously, dates and times.  I have noticed 
some messages in the archives from a few months ago that mention various 
date tags and formats, but none that I thought provided a really good 
option.

I have come up with several alternatives for this.


Version 1:
  The first places each field in a separate tag, as follows:

<datetime calendar="gregorian" locale="au" tz="+10:00">
    <day>Tuesday</day>
    <date>28</date>
    <month>10</month>
    <year era="CE">2003</yr>
    <time>13:10:15</time>
</datetime>

This has the advantage that older browsers that won't support the tags 
will still render the content such as:
 "Tuesday 28 10 2003 13:10:15"
which is atleast readable, though not perfectly formatted.  However new 
browsers that do understand the tags will be able to apply, (also older 
browsers that support CSS, if it provided by the author) will be able to 
format the date in a presentable manner such as:
"Tuesday, 2003-10-28 13:10:15"

  Plus, browsers from other languages will see the calendar, locale and 
tz (timezone) attributes and be able to perform calculations, or other 
formatting to present the date in the user's preferred format, or even 
convert to a different calendar.  xml:lang may also be used here to 
specify the language, if it is different from the rest of the document.
  The era (which would default to CE) attribute also allows historians 
to write dates as BCE.

  Note: I am proposing the use of CE (common era) and BCE (before common 
era), instead of AD and BC because of the relationship of the latter to 
christianity.

  It may also be an option to use <hour>, <min> and <sec> tags, rather 
than just the single <time> tag, but it may be unnecessary to break time 
down that far.


Version 2:
  Alternatively, this could be written with each field as attributes, 
and have default text, for rendering in older user agents, within the tags.
Using CSS, this default content could be hidden, as in the <object> tag, 
for example, and use the attributes when printing the date, or perform 
conversions before rendering by the browser.

<datetime calendar="gregorian" locale="au" era="CE" year="2003" 
month="10" day="Thursday" date="30" hour="13" min="10" sec="15" 
tz="+10">Thursday, 10 October 2003, 13:10:15</datetime>

  Possible CSS to render this could be written like this (or some other 
variant):
datetime:after {
    content: attr(day) + ", " + attr(date) + "-" + attr(month) + "-" + 
attr(year) + ", " + attr(hour) + ":" + attr(min) + ":" + attr(sec);
}


Version 3:
  The third version simply specifies the calendar, locale, era and tz, 
along with a format, as follows:
<datetime calendar="gregorian" locale="au" tz="+10:00" era="CE 
format="dddd, dd-MM-yyyy, HH:mm:ss">Tuesday, 30-10-2003, 13:10:15</datetime>
  This would allow user agents to understand the format that the date 
has been written in, and allow alternative rendering, or conversions to 
be performed.


Version 4:
  My final version simply uses an attribute that specifies the 
international format, with default text rendered within, as before.

<datetime datetime="2003-10-28T13:10:15+10:00">Tuesday, 10 October 2003, 
13:10:15</datetime>

  However, I see two problems with versions 3 and 4:
a) The browser would need to support this tag to be able to reformat the 
date in any way.  I'm not aware of any css that can process a string 
like this ("2003-10-28T13:10:15:00+10:00") to seperate content, reformat 
and display.

b) It would mean that authors would have to take care that they wrote 
the date, following the format exactly.  If an error was made, such as 
using '-' instead of ':', or omitting the T, or anything else, user 
agents may find it useless, and unable to process.

  Thus, I prefer either my first or second alternative because it 
clearly seperates each field, making it easier for authors, and CSS 
designers to format.  Perhaps some combinations of these four 
alternatives that I have not considered could be used.

Received on Wednesday, 29 October 2003 12:20:48 UTC