- From: poot <cvsmail@w3.org>
- Date: Thu, 30 Oct 2008 09:24:47 +0900 (JST)
- To: public-html-diffs@w3.org
Redefine datetimes to be stricter. Merge the two definitions of timezoned datetimes. (whatwg r2381) 2.4.4.8 Time offsets http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#time-offsets 2.4.4 Dates and times http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#dates-and-times valid global date and time string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-global-date-and-time-string 4.7.3 Attributes common to ins and del elements http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#attributes-common-to-ins-and-del-elements valid date string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-date-string 2.4.4.2 Local dates and times http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#local-dates-and-times datetime http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#attr-mod-datetime 2.4.4.1 Global dates and times http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#global-dates-and-times 4.10.4.1.6 Date and Time state http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#date-and-time-state valid time string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-time-string HTMLModElement http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#htmlmodelement valid week string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-week-string parse a global date and time string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#parse-a-global-date-and-time-string valid month string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-month-string 2.4.4.3 Dates http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#dates Status of this document http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#status-of-this-document A vocabulary and associated APIs for HTML and XHTML http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#a-vocabulary-and-associated-apis-for-html-and-xhtml date or time strings in attributes http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#date-or-time-string-in-attributes valid local date and time string http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#valid-local-date-and-time-string date or time strings in content http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#date-or-time-string-in-content Editor's Draft 30 October 2008 http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#editor-s-draft-date-zzz-9-june-2008 time offset serialization rules http://people.w3.org/mike/diffs/html5/spec/Overview.1.1553.html#time-offset-serialization-rules http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1552&r2=1.1553&f=h http://html5.org/tools/web-apps-tracker?from=2380&to=2381 =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.1552 retrieving revision 1.1553 diff -u -d -r1.1552 -r1.1553 --- Overview.html 29 Oct 2008 22:30:22 -0000 1.1552 +++ Overview.html 30 Oct 2008 00:21:56 -0000 1.1553 @@ -8,7 +8,7 @@ <p><a href=http://www.w3.org/><img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72></a></p> <h1>HTML 5</h1> <h2 class="no-num no-toc" id=a-vocabulary-and-associated-apis-for-html-and-xhtml>A vocabulary and associated APIs for HTML and XHTML</h2> - <h2 class="no-num no-toc" id=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->29 October 2008</h2> + <h2 class="no-num no-toc" id=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->30 October 2008</h2> <dl><!-- ZZZ: update the month/day <dt>This Version:</dt> <dd><a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a></dd> @@ -97,7 +97,7 @@ specification's progress along the W3C Recommendation track. <!--ZZZ:--> - This specification is the 29 October 2008 <!--ZZZ "Working Draft"-->Editor's Draft. + This specification is the 30 October 2008 <!--ZZZ "Working Draft"-->Editor's Draft. <!--:ZZZ--> </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href=http://www.whatwg.org/>WHATWG</a>. The two specifications are identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of) @@ -164,15 +164,14 @@ <li><a href=#lists-of-integers><span class=secno>2.4.3.6 </span>Lists of integers</a></ol></li> <li><a href=#dates-and-times><span class=secno>2.4.4 </span>Dates and times</a> <ol> - <li><a href=#specific-moments-in-time><span class=secno>2.4.4.1 </span>Specific moments in time</a></li> - <li><a href=#utc-dates-and-times><span class=secno>2.4.4.2 </span>UTC dates and times</a></li> - <li><a href=#local-dates-and-times><span class=secno>2.4.4.3 </span>Local dates and times</a></li> - <li><a href=#dates><span class=secno>2.4.4.4 </span>Dates</a></li> - <li><a href=#months><span class=secno>2.4.4.5 </span>Months</a></li> - <li><a href=#weeks><span class=secno>2.4.4.6 </span>Weeks</a></li> - <li><a href=#times><span class=secno>2.4.4.7 </span>Times</a></li> - <li><a href=#vaguer-moments-in-time><span class=secno>2.4.4.8 </span>Vaguer moments in time</a></li> - <li><a href=#time-offsets><span class=secno>2.4.4.9 </span>Time offsets</a></ol></li> + <li><a href=#global-dates-and-times><span class=secno>2.4.4.1 </span>Global dates and times</a></li> + <li><a href=#local-dates-and-times><span class=secno>2.4.4.2 </span>Local dates and times</a></li> + <li><a href=#dates><span class=secno>2.4.4.3 </span>Dates</a></li> + <li><a href=#months><span class=secno>2.4.4.4 </span>Months</a></li> + <li><a href=#weeks><span class=secno>2.4.4.5 </span>Weeks</a></li> + <li><a href=#times><span class=secno>2.4.4.6 </span>Times</a></li> + <li><a href=#vaguer-moments-in-time><span class=secno>2.4.4.7 </span>Vaguer moments in time</a></li> + <li><a href=#time-offsets><span class=secno>2.4.4.8 </span>Time offsets</a></ol></li> <li><a href=#space-separated-tokens><span class=secno>2.4.5 </span>Space-separated tokens</a></li> <li><a href=#comma-separated-tokens><span class=secno>2.4.6 </span>Comma-separated tokens</a></li> <li><a href=#keywords-and-enumerated-attributes><span class=secno>2.4.7 </span>Keywords and enumerated attributes</a></li> @@ -2231,41 +2230,107 @@ 12; <em>30</em> if <var title="">month</var> is 4, 6, 9, or 11; <em>29</em> if <var title="">month</var> is 2 and <var title="">year</var> is a number divisible by 400, or if <var title="">year</var> is a number divisible by 4 but not by 100; and <em>28</em> otherwise. This takes into account leap years in the - Gregorian calendar. <a href=#references>[GREGORIAN]</a><h5 id=specific-moments-in-time><span class=secno>2.4.4.1 </span>Specific moments in time</h5><p class=XXX>This syntax is going to be tightened up and - made almost exactly the same as the <a href=#valid-utc-date-and-time-string>valid UTC date and time - string</a> syntax, with the exception of allowing time zones. In - fact what we might do is allow time zones in general, use the same - parser, etc, but require that UAs always use the UTC time zone when - synthesizing datetimes for form submission.<p>A string is a <dfn id=valid-datetime>valid datetime</dfn> if it has four digits - (representing the year), a literal hyphen, two digits (representing - the month), a literal hyphen, two digits (representing the day), - optionally some spaces, either a literal T or a space, optionally - some more spaces, two digits (for the hour), a colon, two digits - (the minutes), optionally the seconds (which, if included, must - consist of another colon, two digits (the integer part of the - seconds), and optionally a decimal point followed by one or more - digits (for the fractional part of the seconds)), optionally some - spaces, and finally either a literal Z (indicating the time zone is - UTC), or, a plus sign or a minus sign followed by two digits, a - colon, and two digits (for the sign, the hours and minutes of the - timezone offset respectively); with the month-day combination being - a valid date in the given year according to the Gregorian calendar, - the hour values (<var title="">h</var>) being in the range - 0 ≤ <var title="">h</var> ≤ 23, the minute - values (<var title="">m</var>) in the range 0 ≤ <var title="">m</var> ≤ 59, and the second value (<var title="">s</var>) being in the range 0 ≤ <var title="">h</var> < 60. <a href=#references>[GREGORIAN]</a></p><!--XXX [GREGORIAN] should point to + Gregorian calendar. <a href=#references>[GREGORIAN]</a><h5 id=global-dates-and-times><span class=secno>2.4.4.1 </span>Global dates and times</h5><p>A <dfn id=concept-datetime title=concept-datetime>global date and time</dfn> + consists of a specific Gregorian date, consisting of a year, a + month, a day, an hour, a minute, a second, and a fraction of a + second, expressed with a time zone, consisting of a number of hours + and minutes. <a href=#references>[GREGORIAN]</a></p><!--XXX [GREGORIAN] should point to <dd id="refsGREGORIAN">[GREGORIAN]</dd> <dd>(Non-normative) <cite>Inter Gravissimas</cite>, A. Lilius, C. Clavius. Gregory XIII Papal Bulls, February 1582.</dd> - --><p>The digits must be characters in the range U+0030 DIGIT ZERO (0) - to U+0039 DIGIT NINE (9), the hyphens must be a U+002D HYPHEN-MINUS - characters, the T must be a U+0054 LATIN CAPITAL LETTER T, the - colons must be U+003A COLON characters, the decimal point must be a - U+002E FULL STOP, the Z must be a U+005A LATIN CAPITAL LETTER Z, the - plus sign must be a U+002B PLUS SIGN, and the minus U+002D (same as - the hyphen).<div class=example> + --><p>A string is a <dfn id=valid-global-date-and-time-string>valid global date and time string</dfn> if it + has the components in the following list, in the given order, and if + the components in the list follow the constraints given after the + list:<ol><li>Four or more digits (representing the year)</li> - <p>The following are some examples of dates written as <a href=#valid-datetime title="valid datetime">valid datetimes</a>.</p> + <li>A U+002D HYPHEN-MINUS character (-).</li> - <dl><dt>"<code>0037-12-13 00:00 Z</code>"</dt> + <li>Two digits (representing the month)</li> + + <li>A U+002D HYPHEN-MINUS character (-).</li> + + <li>Two digits (representing the day)</li> + + <li>A U+0054 LATIN CAPITAL LETTER T character.</li> + + <li>Two digits (representing the hour)</li> + + <li>A U+003A COLON character (:).</li> + + <li>Two digits (representing the minutes)</li> + + <li>Optionally: + + <ol><li>A U+003A COLON character (:).</li> + + <li>Two digits (representing the integer part of the seconds)</li> + + <li>Optionally: + + <ol><li>A 002E FULL STOP character (.)</li> + + <li>One or more digits (representing the fractional part of the seconds)</li> + + </ol></li> + + </ol></li> + + <li>Either: + + <ul><li>A U+005A LATIN CAPITAL LETTER Z character (indicating the + time zone is UTC)</li> + + <li>Or: + + <ol><li>Either a U+002B PLUS SIGN character (+) or a U+002D + HYPHEN-MINUS (-) character (the sign of the timezone + offset)</li> + + <li>Two digits (representing the hours component of the timezone offset)</li> + + <li>A U+003A COLON character (:).</li> + + <li>Two digits (representing the minutes component of the timezone offset)</li> + + </ol></li> + + </ul></li> + + </ol><p>The aforementioned constraints are:<ul><li>The month <var title="">m</var> must be in the range + 0 ≤ <var title="">m</var> ≤ 12.</li> + + <li>The day <var title="">d</var> must be in the range + 0 ≤ <var title="">d</var> ≤ <var title="">D</var> where <var title="">D</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of days + in the given month and year</a>.</li> + + <li>The hour <var title="">h</var> must be in the range + 0 ≤ <var title="">h</var> ≤ 23.</li> + + <li>The minute <var title="">m</var> must be in the range + 0 ≤ <var title="">m</var> ≤ 59.</li> + + <li>If present, the second <var title="">s</var> (consisting of the + integer part and its fractional part) must be in the range + 0 ≤ <var title="">s</var> < 60. (The + values 60 and 61 are not allowed: leap seconds cannot be + represented by datetime values.)</li> + + <li>If present, the time zone hour <var title="">h</var> must be in + the range 0 ≤ <var title="">h</var> ≤ 23. (However, in practice, time + zones do not currently ever have an hour component greater than + 14.)</li> + + <li>If present, the time zone minute <var title="">m</var> must be + in the range 0 ≤ <var title="">m</var> ≤ 59. (However, in practice, time + zones do not currently ever have a minute component other than 0, 30, + or 45.)</li> + + </ul><p>The digits must be characters in the range U+0030 DIGIT ZERO to + U+0039 DIGIT NINE, used to express numbers in base ten.<div class=example> + + <p>The following are some examples of dates written as <a href=#valid-global-date-and-time-string title="valid global date and time string">valid global date and + time strings</a>.</p> + + <dl><dt>"<code>0037-12-13T00:00Z</code>"</dt> <dd>Midnight UTC on the birthday of Nero (the Roman Emperor).</dd> @@ -2275,11 +2340,12 @@ zone in use on the east coast of North America during daylight saving time.</dd> - <dt>"<code>8592-01-01 T 02:09 +02:09</code>"</dt> + <dt>"<code>8592-01-01T02:09+02:09</code>"</dt> <dd>Midnight UTC on the 1st of January, 8592. The time zone associated with that time is two hours and nine minutes ahead of - UTC.</dd> + UTC, which is not a real time zone currently, but is nonetheless + allowed.</dd> </dl><p>Several things are notable about these dates:</p> @@ -2299,19 +2365,16 @@ <li>The time and timezone components are not optional.</li> - <li>Dates before the year 0 or after the year 9999 can't be - represented as a datetime in this version of HTML.</li> + <li>Dates before the year zero can't be represented as a datetime + in this version of HTML.</li> <li>Time zones differ based on daylight savings time.</li> - </ul></div><p class=note>Conformance checkers can use the algorithm below to - determine if a datetime is a valid datetime or not.<p>To <dfn id=datetime-parser>parse a string as a datetime - value</dfn>, a user agent must apply the following algorithm to the - string. This will either return a time in UTC, with associated + </ul></div><p>The rules to <dfn id=parse-a-global-date-and-time-string>parse a global date and time string</dfn> are + as follows. This will either return a time in UTC, with associated timezone information for round tripping or display purposes, or - nothing, indicating the value is not a <a href=#valid-datetime>valid - datetime</a>. If at any point the algorithm says that it "fails", - this means that it returns nothing.<ol><li><p>Let <var title="">input</var> be the string being + nothing. If at any point the algorithm says that it "fails", this + means that it is aborted at that point and returns nothing.<ol><li><p>Let <var title="">input</var> be the string being parsed.</li> <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the @@ -2319,9 +2382,9 @@ <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected - sequence is not exactly four characters long, then fail. Otherwise, - interpret the resulting sequence as a base-ten integer. Let that - number be the <var title="">year</var>.</li> + sequence is not at least four characters long, then + fail. Otherwise, interpret the resulting sequence as a base-ten + integer. Let that number be the <var title="">year</var>.</li> <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+002D HYPHEN-MINUS character, then fail. Otherwise, move <var title="">position</var> forwards @@ -2334,7 +2397,8 @@ number be the <var title="">month</var>.</li> <li>If <var title="">month</var> is not a number in the range - 1 ≤ <var title="">month</var> ≤ 12, then fail.</li> + 1 ≤ <var title="">month</var> ≤ 12, then + fail.</li> <li><p>Let <var title="">maxday</var> be the <a href=#number-of-days-in-month-month-of-year-year>number of days in month <var title="">month</var> of year <var title="">year</var></a>.</li> @@ -2352,10 +2416,9 @@ <li><p>If <var title="">day</var> is not a number in the range 1 ≤ <var title="">month</var> ≤ <var title="">maxday</var>, then fail.</li> - <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are - either U+0054 LATIN CAPITAL LETTER T characters or <a href=#space-character title="space character">space characters</a>. If the collected - sequence is zero characters long, or if it contains more than one - U+0054 LATIN CAPITAL LETTER T character, then fail.</li> + <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0054 LATIN CAPITAL LETTER T + character then fail. Otherwise, move <var title="">position</var> + forwards one character.</li> <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected @@ -2364,11 +2427,12 @@ number be the <var title="">hour</var>.</li> <li>If <var title="">hour</var> is not a number in the range - 0 ≤ <var title="">hour</var> ≤ 23, then fail.</li> + 0 ≤ <var title="">hour</var> ≤ 23, then + fail.</li> - <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character, - then fail. Otherwise, move <var title="">position</var> forwards - one character.</li> + <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+003A COLON character, then + fail. Otherwise, move <var title="">position</var> forwards one + character.</li> <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected @@ -2377,15 +2441,18 @@ number be the <var title="">minute</var>.</li> <li>If <var title="">minute</var> is not a number in the range - 0 ≤ <var title="">minute</var> ≤ 59, then fail.</li> + 0 ≤ <var title="">minute</var> ≤ 59, then + fail.</li> <li><p>Let <var title="">second</var> be a string with the value "0".</li> <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, then fail.</li> - <li><p>If the character at <var title="">position</var> is a U+003A - COLON, then:</p> + <li> + + <p>If the character at <var title="">position</var> is a U+003A + COLON, then run these substeps:</p> <ol><li><p>Advance <var title="">position</var> to the next character in <var title="">input</var>.</li> @@ -2405,34 +2472,31 @@ </ol></li> <li><p>Interpret <var title="">second</var> as a base-ten number - (possibly with a fractional part). Let that number be <var title="">second</var> instead of the string version.</li> + (possibly with a fractional part). Let <var title="">second</var> + be that number instead of the string version.</li> <li>If <var title="">second</var> is not a number in the range 0 ≤ <var title="">second</var> < 60, then - fail. (The values 60 and 61 are not allowed: leap seconds cannot be - represented by datetime values.)</li> + fail.</li> <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, then fail.</li> - <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li> + <li> - <li><p>If the character at <var title="">position</var> is a - U+005A LATIN CAPITAL LETTER Z, then:</p> + <p>If the character at <var title="">position</var> is a U+005A + LATIN CAPITAL LETTER Z, then:</p> - <ol><li><p>Let <var title="">timezone<sub title="">hours</sub></var> be - 0.</li> + <ol><li><p>Let <var title="">timezone<sub title="">hours</sub></var> + be 0.</li> - <li><p>Let <var title="">timezone<sub title="">minutes</sub></var> be - 0.</li> + <li><p>Let <var title="">timezone<sub title="">minutes</sub></var> be 0.</li> <li><p>Advance <var title="">position</var> to the next character in <var title="">input</var>.</li> - </ol></li> - - <li><p>Otherwise, if the character at <var title="">position</var> - is either a U+002B PLUS SIGN ("+") or a U+002D HYPHEN-MINUS ("-"), - then:</p> + </ol><p>Otherwise, if the character at <var title="">position</var> is + either a U+002B PLUS SIGN ("+") or a U+002D HYPHEN-MINUS ("-"), + then:</p> <ol><li><p>If the character at <var title="">position</var> is a U+002B PLUS SIGN ("+"), let <var title="">sign</var> be @@ -2447,9 +2511,8 @@ fail. Otherwise, interpret the resulting sequence as a base-ten integer. Let that number be the <var title="">timezone<sub title="">hours</sub></var>.</li> - <li>If <var title="">timezone<sub title="">hours</sub></var> is not a - number in the range 0 ≤ <var title="">timezone<sub title="">hours</sub></var> ≤ 23, then - fail.</li> + <li>If <var title="">timezone<sub title="">hours</sub></var> is + not a number in the range 0 ≤ <var title="">timezone<sub title="">hours</sub></var> ≤ 23, then fail.</li> <li>If <var title="">sign</var> is "negative", then negate <var title="">timezone<sub title="">hours</sub></var>.</li> @@ -2463,9 +2526,8 @@ fail. Otherwise, interpret the resulting sequence as a base-ten integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li> - <li>If <var title="">timezone<sub title="">minutes</sub></var> is not a - number in the range 0 ≤ <var title="">timezone<sub title="">minutes</sub></var> ≤ 59, then - fail.</li> + <li>If <var title="">timezone<sub title="">minutes</sub></var> is + not a number in the range 0 ≤ <var title="">timezone<sub title="">minutes</sub></var> ≤ 59, then fail.</li> <li>If <var title="">sign</var> is "negative", then negate <var title="">timezone<sub title="">minutes</sub></var>.</li> @@ -2486,23 +2548,19 @@ <li><p>Return <var title="">time</var> and <var title="">timezone</var>.</li> - </ol><h5 id=utc-dates-and-times><span class=secno>2.4.4.2 </span>UTC dates and times</h5><p>A <dfn id=concept-datetime title=concept-datetime>UTC date and time</dfn> consists - of a specific Gregorian date expressed relative to the UTC timezone, - consisting of a year, a month, a day, an hour, a minute, a second, - and a fraction of a second. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-utc-date-and-time-string>valid UTC date and time string</dfn><p class=XXX>... rules to <dfn id=parse-a-utc-date-and-time-string>parse a UTC date and time - string</dfn><h5 id=local-dates-and-times><span class=secno>2.4.4.3 </span>Local dates and times</h5><p>A <dfn id=concept-datetime-local title=concept-datetime-local>local date and time</dfn> + </ol><h5 id=local-dates-and-times><span class=secno>2.4.4.2 </span>Local dates and times</h5><p>A <dfn id=concept-datetime-local title=concept-datetime-local>local date and time</dfn> consists of a specific Gregorian date with no timezone information, consisting of a year, a month, a day, an hour, a minute, a second, and a fraction of a second. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-local-date-and-time-string>valid local date and time string</dfn><p class=XXX>... rules to <dfn id=parse-a-local-date-and-time-string>parse a local date and time - string</dfn><h5 id=dates><span class=secno>2.4.4.4 </span>Dates</h5><p>A <dfn id=concept-date title=concept-date>date</dfn> consists of a specific + string</dfn><h5 id=dates><span class=secno>2.4.4.3 </span>Dates</h5><p>A <dfn id=concept-date title=concept-date>date</dfn> consists of a specific Gregorian date with no timezone information, consisting of a year, a - month, and a day. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-date-string>valid date string</dfn><p class=XXX>... rules to <dfn id=parse-a-date-string>parse a date string</dfn><h5 id=months><span class=secno>2.4.4.5 </span>Months</h5><p>A <dfn id=concept-month title=concept-month>month</dfn> consists of a specific + month, and a day. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-date-string>valid date string</dfn><p class=XXX>... rules to <dfn id=parse-a-date-string>parse a date string</dfn><h5 id=months><span class=secno>2.4.4.4 </span>Months</h5><p>A <dfn id=concept-month title=concept-month>month</dfn> consists of a specific Gregorian date with no timezone information and no date information - beyond a year and a month. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-month-string>valid month string</dfn><p class=XXX>... rules to <dfn id=parse-a-month-string>parse a month string</dfn><h5 id=weeks><span class=secno>2.4.4.6 </span>Weeks</h5><p>A <dfn id=concept-week title=concept-week>week</dfn> consists of a specific + beyond a year and a month. <a href=#references>[GREGORIAN]</a><p class=XXX>... <dfn id=valid-month-string>valid month string</dfn><p class=XXX>... rules to <dfn id=parse-a-month-string>parse a month string</dfn><h5 id=weeks><span class=secno>2.4.4.5 </span>Weeks</h5><p>A <dfn id=concept-week title=concept-week>week</dfn> consists of a specific Gregorian date with no timezone information and no date information - beyond a year and a week. <a href=#references>[GREGORIAN]</a></p><!-- XXX ISO week information --><p class=XXX>... <dfn id=valid-week-string>valid week string</dfn><p class=XXX>... rules to <dfn id=parse-a-week-string>parse a week string</dfn><h5 id=times><span class=secno>2.4.4.7 </span>Times</h5><p>A <dfn id=concept-time title=concept-time>time</dfn> consists of a specific + beyond a year and a week. <a href=#references>[GREGORIAN]</a></p><!-- XXX ISO week information --><p class=XXX>... <dfn id=valid-week-string>valid week string</dfn><p class=XXX>... rules to <dfn id=parse-a-week-string>parse a week string</dfn><h5 id=times><span class=secno>2.4.4.6 </span>Times</h5><p>A <dfn id=concept-time title=concept-time>time</dfn> consists of a specific time with no timezone information, consisting of an hour, a minute, - a second, and a fraction of a second.<p class=XXX>... <dfn id=valid-time-string>valid time string</dfn><p class=XXX>... rules to <dfn id=parse-a-time-string>parse a time string</dfn><h5 id=vaguer-moments-in-time><span class=secno>2.4.4.8 </span>Vaguer moments in time</h5><p>This section defines <dfn id=date-or-time-string title="date or time string">date or + a second, and a fraction of a second.<p class=XXX>... <dfn id=valid-time-string>valid time string</dfn><p class=XXX>... rules to <dfn id=parse-a-time-string>parse a time string</dfn><h5 id=vaguer-moments-in-time><span class=secno>2.4.4.7 </span>Vaguer moments in time</h5><p>This section defines <dfn id=date-or-time-string title="date or time string">date or time strings</dfn>. There are two kinds, <dfn id=date-or-time-string-in-content title="date or time string in content">date or time strings in content</dfn>, and <dfn id=date-or-time-string-in-attributes title="date or time string in attributes">date or time strings in attributes</dfn>. The only difference is in the handling of @@ -2786,7 +2844,7 @@ <li><p>Abort these steps (the string is parsed).</li> - </ol><h5 id=time-offsets><span class=secno>2.4.4.9 </span>Time offsets</h5><p class=XXX><dfn id=valid-time-offset>valid time offset</dfn>, <dfn id=rules-for-parsing-time-offsets>rules for + </ol><h5 id=time-offsets><span class=secno>2.4.4.8 </span>Time offsets</h5><p class=XXX><dfn id=valid-time-offset>valid time offset</dfn>, <dfn id=rules-for-parsing-time-offsets>rules for parsing time offsets</dfn>, <dfn id=time-offset-serialization-rules>time offset serialization rules</dfn>; probably in the format "5d4h3m2.1s" or similar, with all components being optional, and the last component's unit suffix @@ -11062,14 +11120,15 @@ change. User agents should allow users to follow such citation links.<p>The <dfn id=attr-mod-datetime title=attr-mod-datetime><code>datetime</code></dfn> attribute may be used to specify the time and date of the change.<p>If present, the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> - attribute must be a <a href=#valid-datetime>valid datetime</a> value.<p>User agents must parse the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attribute according to the - <a href=#datetime-parser>parse a string as a datetime value</a> algorithm. If that + attribute must be a <a href=#valid-global-date-and-time-string>valid global date and time string</a> + value.<p>User agents must parse the <code title=attr-mod-datetime><a href=#attr-mod-datetime>datetime</a></code> attribute according to the + <a href=#parse-a-global-date-and-time-string>parse a global date and time string</a> algorithm. If that doesn't return a time, then the modification has no associated - timestamp (the value is non-conforming; it is not a <a href=#valid-datetime>valid - datetime</a>). Otherwise, the modification is marked as having - been made at the given datetime. User agents should use the - associated timezone information to determine which timezone to - present the given datetime in.<p>The <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements must implement + timestamp (the value is non-conforming; it is not a <a href=#valid-global-date-and-time-string>valid + global date and time string</a>). Otherwise, the modification is + marked as having been made at the given datetime. User agents should + use the associated timezone information to determine which timezone + to present the given datetime in.<p>The <code><a href=#the-ins-element>ins</a></code> and <code><a href=#the-del-element>del</a></code> elements must implement the <code><a href=#htmlmodelement>HTMLModElement</a></code> interface:<pre class=idl>interface <dfn id=htmlmodelement>HTMLModElement</dfn> : <a href=#htmlelement>HTMLElement</a> { attribute DOMString <a href=#dom-mod-cite title=dom-mod-cite>cite</a>; attribute DOMString <a href=#dom-mod-datetime title=dom-mod-datetime>dateTime</a>; @@ -19796,54 +19855,61 @@ </div><h6 id=date-and-time-state><span class=secno>4.10.4.1.6 </span><dfn title=attr-input-type-datetime>Date and Time</dfn> state</h6><p>When an <code><a href=#the-input-element>input</a></code> element's <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href=#date-and-time-state title=attr-input-type-datetime>Date and Time</a> state, the rules in this section apply.<p>The <code><a href=#the-input-element>input</a></code> element represents a control for setting the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to a - string representing a specific <a href=#concept-datetime title=concept-datetime>UTC + string representing a specific <a href=#concept-datetime title=concept-datetime>global date and time</a>. User agents may display the date and time in whatever timezone is appropriate for the user.<p>If the element is <i title=concept-input-mutable><a href=#concept-input-mutable>mutable</a></i>, - the user agent should allow the user to change the <a href=#concept-datetime title=concept-datetime>UTC date and time</a> represented by its - <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by <a href=#parse-a-utc-date-and-time-string title="parse a UTC date and time string">parsing a UTC date and - time</a> from it. User agents must not allow the user to set the - <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that is not - a <a href=#valid-utc-date-and-time-string>valid UTC date and time string</a>. If the user agent - provides a user interface for selecting a <a href=#concept-datetime title=concept-datetime>UTC date and time</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-utc-date-and-time-string>valid - UTC date and time string</a> representing the user's - selection. User agents should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.<p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if - specified, must have a value that is a <a href=#valid-utc-date-and-time-string>valid UTC date and time - string</a>.</p><!-- ok to set out-of-range value, we never know - when we might have to represent bogus input --><p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as + the user agent should allow the user to change the <a href=#concept-datetime title=concept-datetime>global date and time</a> represented by + its <a href=#concept-fe-value title=concept-fe-value>value</a>, as obtained by + <a href=#parse-a-global-date-and-time-string title="parse a global date and time string">parsing a global + date and time</a> from it. User agents must not allow the user to + set the <a href=#concept-fe-value title=concept-fe-value>value</a> to a string that + is not a <a href=#valid-global-date-and-time-string>valid global date and time string</a> expressed in + UTC, though user agents may allow the user to set and view the time + in another timezone and silently translate the time to and from the + UTC timezone in the <a href=#concept-fe-value title=concept-fe-value>value</a>. If + the user agent provides a user interface for selecting a <a href=#concept-datetime title=concept-datetime>global date and time</a>, then the <a href=#concept-fe-value title=concept-fe-value>value</a> must be set to a <a href=#valid-global-date-and-time-string>valid + global date and time string</a> expressed in UTC representing the + user's selection. User agents should allow the user to set the <a href=#concept-fe-value title=concept-fe-value>value</a> to the empty string.<p>The <code title=attr-input-value><a href=#attr-input-value>value</a></code> attribute, if + specified, must have a value that is a <a href=#valid-global-date-and-time-string>valid global date and + time string</a>.</p><!-- ok to set out-of-range value, we never + know when we might have to represent bogus input --><p><strong>The <a href=#value-sanitization-algorithm>value sanitization algorithm</a> is as follows:</strong> If the <a href=#concept-fe-value title=concept-fe-value>value</a> - of the element is not a <a href=#valid-utc-date-and-time-string>valid UTC date and time string</a>, - then set it to the empty string instead.<p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if - specified, must have a value that is a <a href=#valid-utc-date-and-time-string>valid UTC date and time - string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code> - attribute, if specified, must have a value that is a <a href=#valid-utc-date-and-time-string>valid UTC - date and time string</a>.<p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is + of the element is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>, + then adjust the time so that the <a href=#concept-fe-value title=concept-fe-value>value</a> represents the same point in + time but expressed in the UTC timezone, otherwise, set it to the + empty string instead.<p>The <code title=attr-input-min><a href=#attr-input-min>min</a></code> attribute, if + specified, must have a value that is a <a href=#valid-global-date-and-time-string>valid global date and + time string</a>. The <code title=attr-input-max><a href=#attr-input-max>max</a></code> + attribute, if specified, must have a value that is a <a href=#valid-global-date-and-time-string>valid + global date and time string</a>.<p>The <code title=attr-input-step><a href=#attr-input-step>step</a></code> attribute is expressed in seconds. The <a href=#concept-input-step-scale title=concept-input-step-scale>step scale factor</a> is 1000 (which converts the seconds to milliseconds, as used in the other algorithms). The <a href=#concept-input-step-default title=concept-input-step-default>default step</a> is 60 seconds.<p>When the element is <a href=#suffering-from-a-step-mismatch>suffering from a step mismatch</a>, - the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-datetime title=concept-datetime>UTC date and time</a> for which the + the user agent may round the element's <a href=#concept-fe-value title=concept-fe-value>value</a> to the nearest <a href=#concept-datetime title=concept-datetime>global date and time</a> for which the element would not <a href=#suffering-from-a-step-mismatch title="suffering from a step mismatch">suffer from a step mismatch</a>.<p><strong>The <a href=#concept-input-value-string-number title=concept-input-value-string-number>algorithm to convert a string to a number</a>, given a string <var title="">input</var>, - is as follows:</strong> If <a href=#parse-a-utc-date-and-time-string title="parse a UTC date and time - string">parsing a UTC date and time</a> from <var title="">input</var> results in an error, then return an error; + is as follows:</strong> If <a href=#parse-a-global-date-and-time-string title="parse a global date and time + string">parsing a global date and time</a> from <var title="">input</var> results in an error, then return an error; otherwise, return the number of milliseconds elapsed from midnight UTC on the morning of 1970-01-01 (the time represented by the value - "<code title="">1970-01-01T00:00:00.0Z</code>") to the parsed <a href=#concept-datetime title=concept-datetime>UTC date and time</a>, ignoring leap + "<code title="">1970-01-01T00:00:00.0Z</code>") to the parsed <a href=#concept-datetime title=concept-datetime>global date and time</a>, ignoring leap seconds.<p><strong>The <a href=#concept-input-value-number-string title=concept-input-value-number-string>algorithm to convert a number to a string</a>, given a number <var title="">input</var>, - is as follows:</strong> Return a <a href=#valid-utc-date-and-time-string>valid UTC date and time - string</a> that represents the <a href=#concept-datetime title=concept-datetime>date and time in UTC</a> that is <var title="">input</var> milliseconds after midnight UTC on the morning + is as follows:</strong> Return a <a href=#valid-global-date-and-time-string>valid global date and time + string</a> expressed in UTC that represents the <a href=#concept-datetime title=concept-datetime>global date and time</a> that is <var title="">input</var> milliseconds after midnight UTC on the morning of 1970-01-01 (the time represented by the value "<code title="">1970-01-01T00:00:00.0Z</code>").<p><strong>The <a href=#concept-input-value-string-date title=concept-input-value-string-date>algorithm to convert a - string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows:</strong> If <a href=#parse-a-utc-date-and-time-string title="parse - a UTC date and time string">parsing a UTC date and time</a> from - <var title="">input</var> results in an error, then return an error; - otherwise, return a <code>Date</code> object representing the parsed - <a href=#concept-datetime title=concept-datetime>UTC date and time</a>.<p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a + string to a <code>Date</code> object</a>, given a string <var title="">input</var>, is as follows:</strong> If <a href=#parse-a-global-date-and-time-string title="parse + a global date and time string">parsing a global date and time</a> + from <var title="">input</var> results in an error, then return an + error; otherwise, return a <code>Date</code> object representing the + parsed <a href=#concept-datetime title=concept-datetime>global date and time</a>, + expressed in UTC.<p><strong>The <a href=#concept-input-value-date-string title=concept-input-value-date-string>algorithm to convert a <code>Date</code> object to a string</a>, given a <code>Date</code> object <var title="">input</var>, is as - follows:</strong> Return a <a href=#valid-utc-date-and-time-string>valid UTC date and time - string</a> that represents the <a href=#concept-datetime title=concept-datetime>date and time in UTC</a> that is + follows:</strong> Return a <a href=#valid-global-date-and-time-string>valid global date and time + string</a> expressed in UTC that represents the <a href=#concept-datetime title=concept-datetime>global date and time</a> that is represented by <var title="">input</var>.<div class=bookkeeping> <p>The following common <code><a href=#the-input-element>input</a></code> element content
Received on Thursday, 30 October 2008 00:25:28 UTC