| | 50 | |
| | 51 | /** |
| | 52 | * @ticket 16495 |
| | 53 | */ |
| | 54 | function test_iso8601_to_datetime() { |
| | 55 | $formats = array( |
| | 56 | // Standard validation conditions |
| | 57 | '2001-02-03T04:05' => '2001-02-03 04:05:00', |
| | 58 | '2001-02-03T04:05:06' => '2001-02-03 04:05:06', |
| | 59 | '2001-02-03T04:05:06.007' => '2001-02-03 04:05:06', |
| | 60 | '2001-02-03T04:05Z' => '2001-02-03 04:05:00', |
| | 61 | '2001-02-03T04:05:06Z' => '2001-02-03 04:05:06', |
| | 62 | '2001-02-03T04:05:06.007Z' => '2001-02-03 04:05:06', |
| | 63 | '2001-02-03T04:05-00:00' => '2001-02-03 04:05:00', |
| | 64 | '2001-02-03T04:05:06-00:00' => '2001-02-03 04:05:06', |
| | 65 | '2001-02-03T04:05:06.007-00:00' => '2001-02-03 04:05:06', |
| | 66 | '2001-02-03T04:05+00:00' => '2001-02-03 04:05:00', |
| | 67 | '2001-02-03T04:05:06+00:00' => '2001-02-03 04:05:06', |
| | 68 | '2001-02-03T04:05:06.007+00:00' => '2001-02-03 04:05:06', |
| | 69 | '2001-02-03T04:05-06:30' => '2001-02-03 10:35:00', |
| | 70 | '2001-02-03T04:05:06-06:30' => '2001-02-03 10:35:06', |
| | 71 | '2001-02-03T04:05:06.007-06:30' => '2001-02-03 10:35:06', |
| | 72 | '2001-02-03T04:05+06:30' => '2001-02-02 21:35:00', |
| | 73 | '2001-02-03T04:05:06+06:30' => '2001-02-02 21:35:06', |
| | 74 | '2001-02-03T04:05:06.007+06:30' => '2001-02-02 21:35:06', |
| | 75 | '2001-02T04:05:06.007' => '2001-02-01 04:05:06', |
| | 76 | |
| | 77 | // Expected error conditions |
| | 78 | '1970-01-01 00:00:00' => false, |
| | 79 | '1970-01-01T00:00:00.000000' => false, |
| | 80 | '1970-01-01T00:00:00,000' => false, |
| | 81 | '1970-01-01T00:00:00+0630' => false, |
| | 82 | '1970-01-01T0000' => false, |
| | 83 | '1970-01-01T00:00.000' => false |
| | 84 | ); |
| | 85 | |
| | 86 | foreach( $formats as $input => $expected ) { |
| | 87 | $this->assertEquals( $expected, iso8601_to_datetime( $input ) ); |
| | 88 | } |
| | 89 | } |