Pārlūkot izejas kodu

[Locale] support for a (AM/PM)

Igor Wiedler 14 gadi atpakaļ
vecāks
revīzija
71e3c97358

+ 6 - 2
src/Symfony/Component/Locale/Stub/StubIntlDateFormatter.php

@@ -40,7 +40,7 @@ class StubIntlDateFormatter
 
     public function format($timestamp)
     {
-        $regExp = "/('(M+|L+|y+|d+|G+|Q+|q+|h+|D+|E+|[^MLydGQqhDE])|M+|L+|y+|d+|G+|Q+|q+|h+|D+|E+)/";
+        $regExp = "/('(M+|L+|y+|d+|G+|Q+|q+|h+|D+|E+|a+|[^MLydGQqhDEa])|M+|L+|y+|d+|G+|Q+|q+|h+|D+|E+|a+)/";
 
         $callback = function($matches) use ($timestamp) {
             $pattern = $matches[0];
@@ -134,7 +134,11 @@ class StubIntlDateFormatter
                             return substr($dayOfWeek, 0, 3);
                     }
                     break;
-            }  
+
+                case 'a':
+                    return gmdate('A', $timestamp);
+                    break;
+            }
         };
 
         $formatted = preg_replace_callback($regExp, $callback, $this->getPattern());

+ 14 - 1
tests/Symfony/Tests/Component/Locale/Stub/StubIntlDateFormatterTest.php

@@ -107,7 +107,20 @@ class StubIntlDateFormatterTest extends \PHPUnit_Framework_TestCase
             array('EEEEE', 0, 'T'),
             array('EEEEEE', 0, 'Thu'),
 
-            array('E', 1296950400, 'Sun'),
+            array('E', 1296540000, 'Tue'), // 2011-02-01
+            array('E', 1296950400, 'Sun'), // 2011-02-06
+
+            /* am/pm marker */
+            array('a', 0, 'AM'),
+            array('aa', 0, 'AM'),
+            array('aaa', 0, 'AM'),
+            array('aaaa', 0, 'AM'),
+
+            // 12 hours
+            array('a', 43200, 'PM'),
+            array('aa', 43200, 'PM'),
+            array('aaa', 43200, 'PM'),
+            array('aaaa', 43200, 'PM'),
         );
     }