Преглед на файлове

[Locale] added more tests to time zone parsing with AM/PM markers

Eriksen Costa преди 14 години
родител
ревизия
0a577e6fce

+ 3 - 1
src/Symfony/Component/Locale/Stub/DateFormat/Hour2400Transformer.php

@@ -31,8 +31,10 @@ class Hour2400Transformer extends HourTransformer
      */
     public function getMktimeHour($hour, $marker = null)
     {
-        if (null !== $marker) {
+        if ('AM' == $marker) {
             $hour = 0;
+        } else if ('PM' == $marker) {
+            $hour = 12;
         }
 
         return $hour;

+ 5 - 1
src/Symfony/Component/Locale/Stub/DateFormat/Hour2401Transformer.php

@@ -33,8 +33,12 @@ class Hour2401Transformer extends HourTransformer
      */
     public function getMktimeHour($hour, $marker = null)
     {
-        if (null !== $marker || 24 === $hour) {
+        if (null === $marker && 24 === $hour) {
             $hour = 0;
+        } else if ('AM' == $marker) {
+            $hour = 0;
+        } else if ('PM' == $marker) {
+            $hour = 12;
         }
 
         return $hour;

+ 46 - 4
tests/Symfony/Tests/Component/Locale/Stub/StubIntlDateFormatterTest.php

@@ -531,20 +531,40 @@ class StubIntlDateFormatterTest extends LocaleTestCase
             array('y-M-d h', '1970-1-1 10', 36000),
             array('y-M-d hh', '1970-1-1 11', 39600),
             array('y-M-d hh', '1970-1-1 12', 0),
-            array('y-M-d hh a', '1970-1-1 12 AM', 0),
-            array('y-M-d hh a', '1970-1-1 12 PM', 43200),
+            array('y-M-d hh a', '1970-1-1 0 AM', 0),
+            array('y-M-d hh a', '1970-1-1 1 AM', 3600),
+            array('y-M-d hh a', '1970-1-1 10 AM', 36000),
             array('y-M-d hh a', '1970-1-1 11 AM', 39600),
+            array('y-M-d hh a', '1970-1-1 12 AM', 0),
+            array('y-M-d hh a', '1970-1-1 23 AM', 82800),
+            array('y-M-d hh a', '1970-1-1 24 AM', 86400),
+            array('y-M-d hh a', '1970-1-1 0 PM', 43200),
+            array('y-M-d hh a', '1970-1-1 1 PM', 46800),
+            array('y-M-d hh a', '1970-1-1 10 PM', 79200),
             array('y-M-d hh a', '1970-1-1 11 PM', 82800),
+            array('y-M-d hh a', '1970-1-1 12 PM', 43200),
+            array('y-M-d hh a', '1970-1-1 23 PM', 126000),
+            array('y-M-d hh a', '1970-1-1 24 PM', 129600),
 
             // 12 hours (0-11)
             array('y-M-d K', '1970-1-1 1', 3600),
             array('y-M-d K', '1970-1-1 10', 36000),
             array('y-M-d KK', '1970-1-1 11', 39600),
             array('y-M-d KK', '1970-1-1 12', 43200),
-            array('y-M-d KK a', '1970-1-1 12 AM', 43200),
-            array('y-M-d KK a', '1970-1-1 12 PM', 86400),
+            array('y-M-d KK a', '1970-1-1 0 AM', 0),
+            array('y-M-d KK a', '1970-1-1 1 AM', 3600),
             array('y-M-d KK a', '1970-1-1 10 AM', 36000),
+            array('y-M-d KK a', '1970-1-1 11 AM', 39600),
+            array('y-M-d KK a', '1970-1-1 12 AM', 43200),
+            array('y-M-d KK a', '1970-1-1 23 AM', 82800),
+            array('y-M-d KK a', '1970-1-1 24 AM', 86400),
+            array('y-M-d KK a', '1970-1-1 0 PM', 43200),
+            array('y-M-d KK a', '1970-1-1 1 PM', 46800),
             array('y-M-d KK a', '1970-1-1 10 PM', 79200),
+            array('y-M-d KK a', '1970-1-1 11 PM', 82800),
+            array('y-M-d KK a', '1970-1-1 12 PM', 86400),
+            array('y-M-d KK a', '1970-1-1 23 PM', 126000),
+            array('y-M-d KK a', '1970-1-1 24 PM', 129600),
 
             // 24 hours (0-23)
             array('y-M-d H', '1970-1-1 0', 0),
@@ -553,9 +573,20 @@ class StubIntlDateFormatterTest extends LocaleTestCase
             array('y-M-d HH', '1970-1-1 11', 39600),
             array('y-M-d HH', '1970-1-1 12', 43200),
             array('y-M-d HH', '1970-1-1 23', 82800),
+            array('y-M-d HH a', '1970-1-1 0 AM', 0),
+            array('y-M-d HH a', '1970-1-1 1 AM', 0),
+            array('y-M-d HH a', '1970-1-1 10 AM', 0),
             array('y-M-d HH a', '1970-1-1 11 AM', 0),
             array('y-M-d HH a', '1970-1-1 12 AM', 0),
             array('y-M-d HH a', '1970-1-1 23 AM', 0),
+            array('y-M-d HH a', '1970-1-1 24 AM', 0),
+            array('y-M-d HH a', '1970-1-1 0 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 1 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 10 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 11 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 12 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 23 PM', 43200),
+            array('y-M-d HH a', '1970-1-1 24 PM', 43200),
 
             // 24 hours (1-24)
             array('y-M-d k', '1970-1-1 1', 3600),
@@ -564,9 +595,20 @@ class StubIntlDateFormatterTest extends LocaleTestCase
             array('y-M-d kk', '1970-1-1 12', 43200),
             array('y-M-d kk', '1970-1-1 23', 82800),
             array('y-M-d kk', '1970-1-1 24', 0),
+            array('y-M-d kk a', '1970-1-1 0 AM', 0),
+            array('y-M-d kk a', '1970-1-1 1 AM', 0),
+            array('y-M-d kk a', '1970-1-1 10 AM', 0),
             array('y-M-d kk a', '1970-1-1 11 AM', 0),
             array('y-M-d kk a', '1970-1-1 12 AM', 0),
             array('y-M-d kk a', '1970-1-1 23 AM', 0),
+            array('y-M-d kk a', '1970-1-1 24 AM', 0),
+            array('y-M-d kk a', '1970-1-1 0 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 1 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 10 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 11 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 12 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 23 PM', 43200),
+            array('y-M-d kk a', '1970-1-1 24 PM', 43200),
 
             // minutes
             array('y-M-d HH:m', '1970-1-1 0:1', 60),