Next revision | Previous revision |
rfc:datetime_and_daylight_saving_time [2011/07/20 16:35] – created danielc | rfc:datetime_and_daylight_saving_time [2017/09/22 13:28] (current) – external edit 127.0.0.1 |
---|
====== Request for Comments: DateTime and Daylight Saving Time Transitions ====== | ====== Request for Comments: DateTime and Daylight Saving Time Transitions ====== |
* Version: 0.1 | * Version: 1.0 |
* Date: 2011-07-20 | * Date: 2011-10-18 |
* Author: Daniel Convissor <danielc@php.net> | * Author: Daniel Convissor <danielc@php.net> with feedback from Derick Rethans <derick@php.net> |
* Status: Draft | * Status: Accepted ([[rfc:datetime_and_daylight_saving_time:vote|voting results]]) |
* First Published at: https://wiki.php.net/rfc/datetime_and_daylight_saving_time | * First Published at: https://wiki.php.net/rfc/datetime_and_daylight_saving_time |
| |
status seems wise. | status seems wise. |
| |
===== Time Zone for Sake of Discussion ===== | |
The ''America/New_York'' time zone will be used as the basis for this | |
discussion. The Standard/Daylight transition in this zone happens at | |
2:00 am. Other zones use different transition times. | |
| |
==== Spring ==== | ===== Zone Types ===== |
<code> | PHP uses three different time zone data structures internally. |
01:59:59 Standard Time | |
+ 1 second | Zone Type 3 objects contain the transition data required for proper |
= 03:00:00 Daylight Saving Time (United States) | calculations around the Daylight/Standard time changes. |
| |
| Zone Type 1 and 2 objects just know their offset from UTC, so addition and |
| subtraction on them ignore crossing over Daylight/Standard thresholds. |
| |
| This RFC focuses on the changes needed to make Zone Type 3 work in a |
| comprehensive manner. Zone Type 1 and 2 behaviors are covered to clarify |
| their expected behavior. |
| |
| ==== Examples ==== |
| Examples of how to create DateTime objects containing each zone type: |
| |
| === Zone Type 1: Offset === |
| <code php> |
| $d = new DateTime('2011-09-13 14:15:16 -0400'); |
</code> | </code> |
| |
* The hour of 2am gets skipped. | === Zone Type 2: Abbreviation === |
* There are 23 hours on that Sunday. | <code php> |
* 2010-03-14 | $d = new DateTime('2011-09-13 14:15:16 EDT'); |
| </code> |
| |
==== Fall ==== | === Zone Type 3: ID === |
<code> | <code php> |
1:59:59 Daylight Saving Time (United States) | $d = new DateTime('2011-09-13 14:15:16'); |
+ 1 second | // or |
= 1:00:00 Standard Time | $d = new DateTime('2011-09-13 14:15:16', new DateTimeZone('America/New_York')); |
</code> | </code> |
| |
* The hour of 1am gets replayed. | |
* There are 25 hours on that Sunday. | ===== Time Zone for Sake of Discussion ===== |
* 2010-11-07 | The ''America/New_York'' time zone will be used for demonstration purposes. |
| The Standard/Daylight transition in this zone happens at |
| 2:00 am. The forward transition (in spring) jumps to 3:00 am, skipping |
| over the hour of 2 am. The backward transition (in fall) jumps back to |
| 1:00 am, repeating the hour of 1 am. |
| |
| Other time zone changes have different lengths of time and take effect |
| at different days/times. |
| |
===== Construction During Transitions ===== | ===== Construction During Transitions ===== |
==== Spring ==== | ==== Forward Transitions ==== |
Times between ''2:00:00 am'' and ''2:59:59 am'' do not exist during the | Times between ''2:00:00 am'' and ''2:59:59 am'' do not exist during the |
Spring transition. Attempts to create such times should be rounded forward, | Forward Transitions transition. Attempts to create such times should be |
like PHP currently does when trying to create February 29th on a non-leap | rounded forward, like PHP currently does when trying to create February 29th |
year. | on a non-leap year. |
| |
<code php> | <code php> |
</code> | </code> |
| |
==== Fall ==== | ==== Backward Transitions ==== |
PHP needs a means to create objects representing times during the hour | PHP needs a means to create objects representing times during the hour |
repeated on the Daylight/Standard transition day | repeated on the Daylight/Standard transition day |
(between ''1:00:00 am'' and ''1:59:59 am'' Standard Time). | (between ''1:00:00 am'' and ''1:59:59 am'' Standard Time). |
| |
This RFC proposes adding a third parameter to ''DateTime::__construct()'', | This RFC proposes adjusting the time string parser to handle strings containing |
''bool $is_daylight_saving_time''. The default value would be NULL. | ''DST'' and ''ST''. When ''DST'' or ''ST'' are not present, PHP will use |
When NULL, PHP will use the current behavior, which uses the DST/ST | the current behavior, which uses the time zone offset in place at the |
in place at the specified time and uses DST during the repeated hour in the | specified time and uses DST offset during the repeated hour during backward |
fall. | transitions. |
| |
Force Daylight Saving Time: | Force Daylight Saving Time: |
<code php> | <code php> |
date_default_timezone_set('America/New_York'); | date_default_timezone_set('America/New_York'); |
$date = new DateTime('2010-11-07 01:30:00', null, true); | $date = new DateTime('2010-11-07 01:30:00 DST'); |
echo $date->format('Y-m-d H:i:s T') . "\n"; | echo $date->format('Y-m-d H:i:s T') . "\n"; |
// Expected: 2010-11-07 01:30:00 EDT | // Expected: 2010-11-07 01:30:00 EDT |
<code php> | <code php> |
date_default_timezone_set('America/New_York'); | date_default_timezone_set('America/New_York'); |
$date = new DateTime('2010-11-07 01:30:00', null, false); | $date = new DateTime('2010-11-07 01:30:00 ST'); |
echo $date->format('Y-m-d H:i:s T') . "\n"; | echo $date->format('Y-m-d H:i:s T') . "\n"; |
// Expected: 2010-11-07 01:30:00 EST | // Expected: 2010-11-07 01:30:00 EST |
</code> | </code> |
| |
| The ''ST'' or ''DST'' modifiers can only be used when specifying times |
===== Construction During Other Times ===== | during the backward transition period. Using the modifiers at other times |
Attempts to create a Standard Time during Daylight Saving Time should be | will throw an exception in object-oriented style code while procedural |
rolled forward to DST. Attempts to create a Daylight Saving Time during | style code will return false without triggering errors. |
Standard Time should be rolled back to ST. | |
| |
| |
===== Math ===== | ===== Math ===== |
==== Spring ==== | The date format used in this section is for display purposes only, does |
^ Saturday ^ Sunday ^ Diff ^ | not correspond to a PHP format, nor is intended to be parsed by PHP. |
| 04:30 S | 04:30 D | 1D | | |
| 04:30 S | 03:30 D | 22H | | |
| 04:30 S | 01:30 S | 21H | | |
| 01:30 S | 01:30 S | 1D | | |
| The Transition Second ||| | |
| 01:59:59 S | 03:00:00 D | 1S | | |
| |
<code php> | Reminder: the time zone in the examples is ''America/New_York''. |
date_default_timezone_set('America/New_York'); | So "(ST)" represents Eastern Standard Time/EST/-0500 and "(DT)" |
// Saturday, 23.5 hrs before DST transition | represents Eastern Daylight Time/EDT/-0400. |
$date = new DateTime('2010-03-13 02:30:00'); | |
$date->add(new DateInterval('P1D')); | |
// Sunday, 2:30 doesn't exist, roll forward 1 hr | |
echo $date->format('Y-m-d H:i:s T') . "\n"; | |
// Expected & Actual: 2010-03-14 03:30:00 EDT | |
</code> | |
| |
==== Fall ==== | The behaviors indicated here are covered by unit tests in ''ext/date/tests'': |
^ Saturday ^ Sunday ^ Diff ^ | * rfc-datetime_and_daylight_saving_time-type1.phpt |
| 04:30 D | 04:30 S | 1D | | * rfc-datetime_and_daylight_saving_time-type2.phpt |
| 04:30 D | 03:30 S | 24H | | * rfc-datetime_and_daylight_saving_time-type3.phpt |
| 04:30 D | 02:30 S | 23H | | |
| 04:30 D | 01:30 S | 22H | | Each output line in the test files is prefixed with an identifier |
| 04:30 D | 01:30 D | 21H | | that corresponds to the ''phpt'' columns in the tables below. |
| 01:30 D | 01:30 D | 1D | | |
| 01:30 D | 01:30 S | 1D 1H | | Actual results for Zone Types 1 and 2 are shown as ''N/A'' for the moment. |
| The Transition Second ||| | All Zone Type 1 tests pass. Zone Type 2 results are tainted by |
| 01:59:59 D | 01:00:00 S | 1S | | [[https://bugs.php.net/bug.php?id=55253|Bug 55253]]. |
| |
| ==== Forward Transitions ==== |
| === Zone Type 3 === |
| == diff() == |
| ^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T03:00:00''//(DT)// | ''2010-03-14T01:59:59''//(ST)// | PT0H0M1S | fd1 | PT1H0M1S | |
| | ''2010-03-14T04:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P1DT0H | fd2 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT22H | fd3 | P0DT23H | |
| | ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T04:30:00''//(ST)// | P0DT21H | fd4 | | |
| | ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T01:30:00''//(ST)// | P1DT0H | fd5 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T03:30:00''//(ST)// | P1DT0H | fd6 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T02:30:00''//(ST)// | P1DT1H | fd7 | | |
| |
| == add() == |
| ^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T01:59:59''//(ST)// | PT1S | ''2010-03-14T03:00:00''//(DT)// | fa1 | | |
| | ''2010-03-13T04:30:00''//(ST)// | P1D | ''2010-03-14T04:30:00''//(DT)// | fa2 | | |
| | ''2010-03-13T04:30:00''//(ST)// | PT22H | ''2010-03-14T03:30:00''//(DT)// | fa3 | | |
| | ''2010-03-13T04:30:00''//(ST)// | PT21H | ''2010-03-14T01:30:00''//(ST)// | fa4 | | |
| | ''2010-03-13T01:30:00''//(ST)// | P1D | ''2010-03-14T01:30:00''//(ST)// | fa5 | | |
| | ''2010-03-13T02:30:00''//(ST)// | P1D | ''2010-03-14T02:30:00''//(DT)// | fa6 | | |
| |
| == sub() == |
| ^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T03:00:00''//(DT)// | PT1S | ''2010-03-14T01:59:59''//(ST)// | fs1 | ''2010-03-14T03:59:59''//(DT)// | |
| | ''2010-03-14T04:30:00''//(DT)// | P1D | ''2010-03-13T04:30:00''//(ST)// | fs2 | | |
| | ''2010-03-14T03:30:00''//(DT)// | PT22H | ''2010-03-13T04:30:00''//(ST)// | fs3 | ''2010-03-13T05:30:00''//(ST)// | |
| | ''2010-03-14T01:30:00''//(ST)// | PT21H | ''2010-03-13T04:30:00''//(ST)// | fs4 | | |
| | ''2010-03-14T01:30:00''//(ST)// | P1D | ''2010-03-13T01:30:00''//(ST)// | fs5 | | |
| | ''2010-03-15T03:30:00''//(DT)// | P1D | ''2010-03-14T03:30:00''//(DT)// | fs6 | | |
| | ''2010-03-15T02:30:00''//(DT)// | P1D | ''2010-03-14T03:30:00''//(DT)// | fs7 | | |
| |
| === Zone Types 1 & 2 === |
| == diff() == |
| ^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T03:00:00''//(DT)// | ''2010-03-14T01:59:59''//(ST)// | PT0H0M1S | fd1 | | |
| | ''2010-03-14T04:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT23H | fd2 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T04:30:00''//(ST)// | P0DT22H | fd3 | | |
| | ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T04:30:00''//(ST)// | P0DT21H | fd4 | | |
| | ''2010-03-14T01:30:00''//(ST)// | ''2010-03-13T01:30:00''//(ST)// | P1DT0H | fd5 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T03:30:00''//(ST)// | P0DT23H | fd6 | | |
| | ''2010-03-14T03:30:00''//(DT)// | ''2010-03-13T02:30:00''//(ST)// | P1DT0H | fd7 | | |
| |
| == add() == |
| ^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T01:59:59''//(ST)// | PT1S | ''2010-03-14T02:00:00''//(ST)// | fa1 | N/A | |
| | ''2010-03-13T04:30:00''//(ST)// | P1D | ''2010-03-14T04:30:00''//(ST)// | fa2 | N/A | |
| | ''2010-03-13T04:30:00''//(ST)// | PT22H | ''2010-03-14T02:30:00''//(ST)// | fa3 | N/A | |
| | ''2010-03-13T04:30:00''//(ST)// | PT21H | ''2010-03-14T01:30:00''//(ST)// | fa4 | N/A | |
| | ''2010-03-13T01:30:00''//(ST)// | P1D | ''2010-03-14T01:30:00''//(ST)// | fa5 | N/A | |
| | ''2010-03-13T02:30:00''//(ST)// | P1D | ''2010-03-14T02:30:00''//(ST)// | fa6 | N/A | |
| |
| == sub() == |
| ^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-03-14T03:00:00''//(DT)// | PT1S | ''2010-03-14T02:59:59''//(DT)// | fs1 | N/A | |
| | ''2010-03-14T04:30:00''//(DT)// | P1D | ''2010-03-13T04:30:00''//(DT)// | fs2 | N/A | |
| | ''2010-03-14T03:30:00''//(DT)// | PT22H | ''2010-03-13T05:30:00''//(DT)// | fs3 | N/A | |
| | ''2010-03-14T01:30:00''//(ST)// | PT21H | ''2010-03-13T04:30:00''//(ST)// | fs4 | N/A | |
| | ''2010-03-14T01:30:00''//(ST)// | P1D | ''2010-03-13T01:30:00''//(ST)// | fs5 | N/A | |
| | ''2010-03-15T03:30:00''//(DT)// | P1D | ''2010-03-14T03:30:00''//(DT)// | fs6 | N/A | |
| | ''2010-03-15T02:30:00''//(DT)// | P1D | ''2010-03-14T02:30:00''//(DT)// | fs7 | N/A | |
| |
| ==== Backward Transitions ==== |
| === Zone Type 3 === |
| == diff() == |
| ^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:00:00''//(ST)// | ''2010-11-07T01:59:59''//(DT)// | PT0H0M1S | bd1 | PT0H59M59S | |
| | ''2010-11-07T04:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT0H | bd2 | | |
| | ''2010-11-07T03:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT24H | bd3 | P0DT23H | |
| | ''2010-11-07T02:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT23H | bd4 | P0DT22H | |
| | ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT22H | bd5 | P0DT21H | |
| | ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T04:30:00''//(DT)// | P0DT21H | bd6 | | |
| | ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T01:30:00''//(DT)// | P1DT0H | bd7 | | |
| | ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T01:30:00''//(DT)// | P1DT1H | bd8 | P1DT1H | |
| |
| == add() == |
| ^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:59:59''//(DT)// | PT1S | ''2010-11-07T01:00:00''//(ST)// | ba1 | ''2010-11-07T01:00:00''//(ST)// | |
| | ''2010-11-06T04:30:00''//(DT)// | P1D | ''2010-11-07T04:30:00''//(ST)// | ba2 | | |
| | ''2010-11-06T04:30:00''//(DT)// | PT24H | ''2010-11-07T03:30:00''//(ST)// | ba3 | ''2010-11-07T04:30:00''//(ST)// | |
| | ''2010-11-06T04:30:00''//(DT)// | PT23H | ''2010-11-07T02:30:00''//(ST)// | ba4 | ''2010-11-07T03:30:00''//(ST)// | |
| | ''2010-11-06T04:30:00''//(DT)// | PT22H | ''2010-11-07T01:30:00''//(ST)// | ba5 | ''2010-11-07T02:30:00''//(ST)// | |
| | ''2010-11-06T04:30:00''//(DT)// | PT21H | ''2010-11-07T01:30:00''//(DT)// | ba6 | | |
| | ''2010-11-06T01:30:00''//(DT)// | P1D | ''2010-11-07T01:30:00''//(DT)// | ba7 | | |
| | ''2010-11-06T01:30:00''//(DT)// | P1DT1H | ''2010-11-07T01:30:00''//(ST)// | ba8 | ''2010-11-07T02:30:00''//(ST)// | |
| | ''2010-11-06T04:30:00''//(DT)// | PT25H | ''2010-11-07T04:30:00''//(ST)// | ba9 | ''2010-11-07T05:30:00''//(ST)// | |
| | ''2010-11-06T03:30:00''//(DT)// | P1D | ''2010-11-07T03:30:00''//(ST)// | ba10| | |
| | ''2010-11-06T02:30:00''//(DT)// | P1D | ''2010-11-07T02:30:00''//(ST)// | ba11| | |
| |
| == sub() == |
| ^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:00:00''//(ST)// | PT1S | ''2010-11-07T01:59:59''//(DT)// | bs1 | ''2010-11-07T00:59:59''//(DT)// | |
| | ''2010-11-07T04:30:00''//(ST)// | P1D | ''2010-11-06T04:30:00''//(DT)// | bs2 | | |
| | ''2010-11-07T03:30:00''//(ST)// | PT24H | ''2010-11-06T04:30:00''//(DT)// | bs3 | ''2010-11-06T03:30:00''//(DT)// | |
| | ''2010-11-07T02:30:00''//(ST)// | PT23H | ''2010-11-06T04:30:00''//(DT)// | bs4 | ''2010-11-06T03:30:00''//(DT)// | |
| | ''2010-11-07T01:30:00''//(ST)// | PT22H | ''2010-11-06T04:30:00''//(DT)// | bs5 | ''2010-11-06T03:30:00''//(DT)// | |
| | ''2010-11-07T01:30:00''//(DT)// | PT21H | ''2010-11-06T04:30:00''//(DT)// | bs6 | | |
| | ''2010-11-07T01:30:00''//(DT)// | P1D | ''2010-11-06T01:30:00''//(DT)// | bs7 | | |
| | ''2010-11-07T01:30:00''//(ST)// | P1DT1H | ''2010-11-06T00:30:00''//(DT)// | bs8 | | |
| | ''2010-11-07T03:30:00''//(ST)// | P1D | ''2010-11-06T03:30:00''//(DT)// | bs9 | | |
| | ''2010-11-07T02:30:00''//(ST)// | P1D | ''2010-11-06T02:30:00''//(DT)// | bs10 | | |
| |
| === Zone Types 1 & 2 === |
| == diff() == |
| ^ End ^ Start ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:00:00''//(ST)// | ''2010-11-07T01:59:59''//(DT)// | PT0H0M1S | bd1 | | |
| | ''2010-11-07T04:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT1H | bd2 | | |
| | ''2010-11-07T03:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P1DT0H | bd3 | | |
| | ''2010-11-07T02:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT23H | bd4 | | |
| | ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T04:30:00''//(DT)// | P0DT22H | bd5 | | |
| | ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T04:30:00''//(DT)// | P0DT21H | bd6 | | |
| | ''2010-11-07T01:30:00''//(DT)// | ''2010-11-06T01:30:00''//(DT)// | P1DT0H | bd7 | | |
| | ''2010-11-07T01:30:00''//(ST)// | ''2010-11-06T01:30:00''//(DT)// | P1DT1H | bd8 | | |
| |
| == add() == |
| ^ Start ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:59:59''//(DT)// | PT1S | ''2010-11-07T02:00:00''//(DT)// | ba1 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | P1D | ''2010-11-07T04:30:00''//(DT)// | ba2 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | PT24H | ''2010-11-07T04:30:00''//(DT)// | ba3 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | PT23H | ''2010-11-07T03:30:00''//(DT)// | ba4 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | PT22H | ''2010-11-07T02:30:00''//(DT)// | ba5 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | PT21H | ''2010-11-07T01:30:00''//(DT)// | ba6 | N/A | |
| | ''2010-11-06T01:30:00''//(DT)// | P1D | ''2010-11-07T01:30:00''//(DT)// | ba7 | N/A | |
| | ''2010-11-06T01:30:00''//(DT)// | P1DT1H | ''2010-11-07T02:30:00''//(DT)// | ba8 | N/A | |
| | ''2010-11-06T04:30:00''//(DT)// | PT25H | ''2010-11-07T05:30:00''//(DT)// | ba9 | N/A | |
| | ''2010-11-06T03:30:00''//(DT)// | P1D | ''2010-11-07T03:30:00''//(DT)// | ba10| N/A | |
| | ''2010-11-06T02:30:00''//(DT)// | P1D | ''2010-11-07T02:30:00''//(DT)// | ba11| N/A | |
| |
| == sub() == |
| ^ End ^ Interval ^ Expected ^ phpt ^ Actual (if wrong) ^ |
| | ''2010-11-07T01:00:00''//(ST)// | PT1S | ''2010-11-07T00:59:59''//(ST)// | bs1 | N/A | |
| | ''2010-11-07T04:30:00''//(ST)// | P1D | ''2010-11-06T04:30:00''//(ST)// | bs2 | N/A | |
| | ''2010-11-07T03:30:00''//(ST)// | PT24H | ''2010-11-06T03:30:00''//(ST)// | bs3 | N/A | |
| | ''2010-11-07T02:30:00''//(ST)// | PT23H | ''2010-11-06T03:30:00''//(ST)// | bs4 | N/A | |
| | ''2010-11-07T01:30:00''//(ST)// | PT22H | ''2010-11-06T03:30:00''//(ST)// | bs5 | N/A | |
| | ''2010-11-07T01:30:00''//(DT)// | PT21H | ''2010-11-06T04:30:00''//(DT)// | bs6 | N/A | |
| | ''2010-11-07T01:30:00''//(DT)// | P1D | ''2010-11-06T01:30:00''//(DT)// | bs7 | N/A | |
| | ''2010-11-07T01:30:00''//(ST)// | P1DT1H | ''2010-11-06T00:30:00''//(ST)// | bs8 | N/A | |
| | ''2010-11-07T03:30:00''//(ST)// | P1D | ''2010-11-06T03:30:00''//(ST)// | bs9 | N/A | |
| | ''2010-11-07T02:30:00''//(ST)// | P1D | ''2010-11-06T02:30:00''//(ST)// | bs10 | N/A | |
| |
| |
===== Other Issues? ===== | ===== Other Issues? ===== |
If you know of other problems, please add them here or bring them to the | If you know of other problems, please bring them to the attention of the authors. |
attention of the authors. | |
| |
| |
===== Changelog ===== | ===== Changelog ===== |
| |