Ver código fonte

[ZF-7154] Zend_Date:

- fixed short month usage before setting year

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16350 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 anos atrás
pai
commit
672a06cb98
2 arquivos alterados com 21 adições e 1 exclusões
  1. 1 1
      library/Zend/Date.php
  2. 20 0
      tests/Zend/DateTest.php

+ 1 - 1
library/Zend/Date.php

@@ -3352,7 +3352,7 @@ class Zend_Date extends Zend_Date_DateObject
                 $cnt = 0;
                 foreach ($monthlist as $key => $value) {
                     if (strtoupper($value) == strtoupper($month)) {
-                        $found = $key + 1;
+                        $found = ($key % 12) + 1;
                         break;
                     }
                     ++$cnt;

+ 20 - 0
tests/Zend/DateTest.php

@@ -5278,6 +5278,26 @@ class Zend_DateTest extends PHPUnit_Framework_TestCase
         $string = $date->toString(Zend_Date::DATES);
         $this->assertTrue(Zend_Date::isDate($string, Zend_Date::DATES));
     }
+
+    /**
+     * @ZF-7154
+     */
+    public function testZF7154()
+    {
+        $locale = new Zend_Locale('de_AT');
+
+        $date = new Zend_Date(1577833200,$locale);
+        $date2 = new Zend_Date(2006, Zend_Date::YEAR);
+        $date->setTimeZone(date_default_timezone_get());
+
+        $date->setYear(2000);
+        $date->setMonth('Apr');
+        $this->assertSame('2000-04-01T04:00:00+05:00', $date->get(Zend_Date::W3C));
+
+        $date->setYear(2004);
+        $date->setMonth('Februar');
+        $this->assertSame('2004-02-01T04:00:00+05:00', $date->get(Zend_Date::W3C));
+    }
 }
 
 class Zend_Date_TestHelper extends Zend_Date