Ejemplo n.º 1
0
 /**
  * test getDate
  * expected array
  */
 public function testgetDate()
 {
     try {
         $value = Zend_Locale_Format::getDate('no content');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         // success
     }
     $this->assertEquals(is_array(Zend_Locale_Format::getDate('10.10.06')), true, "array expected");
     $this->assertEquals(count(Zend_Locale_Format::getDate('10.10.06', 'dd.MM.yy')), 4, "array with 4 tags expected");
     $value = Zend_Locale_Format::getDate('10.11.06', 'dd.MM.yy');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 06, 'Year 06 expected');
     $value = Zend_Locale_Format::getDate('10.11.2006', 'dd.MM.yy');
     $this->assertSame($value['day'], 10, 'Day 10 expected');
     $this->assertSame($value['month'], 11, 'Month 11 expected');
     $this->assertSame($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('2006.13.01', 'dd.MM.yy');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006.13.01', 'dd.MM.yy');
     $this->assertEquals($value['day'], 13, 'Day 13 expected');
     $this->assertEquals($value['month'], 1, 'Month 1 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('2006.01.13', 'dd.MM.yy');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006.01.13', 'dd.MM.yy');
     $this->assertEquals($value['day'], 13, 'Day 13 expected');
     $this->assertEquals($value['month'], 1, 'Month 1 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('101106', 'ddMMyy');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 6, 'Year 6 expected');
     $value = Zend_Locale_Format::getDate('10112006', 'ddMMyyyy');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('10 Nov 2006', 'dd.MMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('10 November 2006', 'dd.MMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('November 10 2006', 'dd.MMM.yy', 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('November 10 2006', 'dd.MMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('Nov 10 2006', 'dd.MMM.yy', 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('Nov 10 2006', 'dd.MMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('2006 10 Nov', 'dd.MMM.yy', 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006 10 Nov', 'dd.MMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     // @todo failed test, auto completion doesnt work for this case
     //        $value = Zend_Locale_Format::getDate('2006 Nov 10','dd.MMM.yy', 'de_AT');
     //        $this->assertEquals($value['day'], 10, 'Day 10 expected');
     //        $this->assertEquals($value['month'], 11, 'Month 11 expected');
     //        $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('10.11.06', 'yy.dd.MM');
     $this->assertEquals($value['day'], 11, 'Day 11 expected');
     $this->assertEquals($value['month'], 6, 'Month 6 expected');
     $this->assertEquals($value['year'], 10, 'Year 10 expected');
     $value = Zend_Locale_Format::getDate('10.11.06', 'dd.yy.MM');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 6, 'Month 6 expected');
     $this->assertEquals($value['year'], 11, 'Year 11 expected');
     $value = Zend_Locale_Format::getDate('10.11.06', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 6, 'Year 6 expected');
     $value = Zend_Locale_Format::getDate('10.11.2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('2006.13.01', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006.13.01', false, 'de_AT');
     $this->assertEquals($value['day'], 13, 'Day 13 expected');
     $this->assertEquals($value['month'], 1, 'Month 1 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('2006.01.13', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006.01.13', false, 'de_AT');
     $this->assertEquals($value['day'], 13, 'Day 13 expected');
     $this->assertEquals($value['month'], 1, 'Month 1 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('101106', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 6, 'Year 6 expected');
     $value = Zend_Locale_Format::getDate('10112006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('10 Nov 2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('10 November 2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('November 10 2006', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('November 10 2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('April 10 2006', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('April 10 2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 4, 'Month 4 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('Nov 10 2006', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('Nov 10 2006', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     try {
         $value = Zend_Locale_Format::getDate('Nov 10 2006', false, 'de_AT');
         $this->fail("no date expected");
     } catch (Zend_Locale_Exception $e) {
         $this->assertRegexp('/unable.to.parse/i', $e->getMessage());
         // success
     }
     $value = Zend_Locale_Format::getCorrectableDate('2006 10 Nov', false, 'de_AT');
     $this->assertEquals($value['day'], 10, 'Day 10 expected');
     $this->assertEquals($value['month'], 11, 'Month 11 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('01.April.2006', 'dd.MMMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 1, 'Day 1 expected');
     $this->assertEquals($value['month'], 4, 'Month 4 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     $value = Zend_Locale_Format::getDate('Montag, 01.April.2006', 'EEEE, dd.MMMM.yy', 'de_AT');
     $this->assertEquals($value['day'], 1, 'Day 1 expected');
     $this->assertEquals($value['month'], 4, 'Month 4 expected');
     $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
     // @todo failed test, auto completion doesnt work for this case
     //        $value = Zend_Locale_Format::getDate('2006 Nov 10', false, 'de_AT');
     //        $this->assertEquals($value['day'], 10, 'Day 10 expected');
     //        $this->assertEquals($value['month'], 11, 'Month 11 expected');
     //        $this->assertEquals($value['year'], 2006, 'Year 2006 expected');
 }
Ejemplo n.º 2
0
 /**
  * Returns the calculated date
  *
  * @param  string                    $calc    Calculation to make
  * @param  string|integer|Zend_Date  $date    Date to calculate with, if null the actual date is taken
  * @param  string                    $format  Dateformat for parsing
  * @param  string|Zend_Locale        $locale  Locale for parsing input
  * @return integer|Zend_Date  new date
  * @throws Zend_Date_Exception
  */
 private function _date($calc, $date, $format, $locale)
 {
     if (is_null($date)) {
         throw new Zend_Date_Exception('parameter $date must be set, null is not allowed');
     }
     if ($locale === null) {
         $locale = $this->getLocale();
     }
     if ($date instanceof Zend_Date) {
         // extract date from object
         $date = $date->get(Zend_Date::DATE_MEDIUM, $locale);
     } else {
         $parsed = Zend_Locale_Format::getCorrectableDate($date, $format, $locale);
         $date = new Zend_Date(0, Zend_Date::TIMESTAMP, $locale);
         $date->set($parsed['year'], Zend_Date::YEAR);
         $date->set($parsed['month'], Zend_Date::MONTH);
         $date->set($parsed['day'], Zend_Date::DAY);
         $date = $date->get(Zend_Date::DATE_MEDIUM, $locale);
     }
     $return = $this->_calcdetail($calc, $date, Zend_Date::DATE_MEDIUM, $locale);
     if ($calc != 'cmp') {
         return $this;
     }
     return $return;
 }