Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function finishView(FormView $view, FormInterface $form, array $options)
 {
     $format = $options['format'];
     if (isset($options['date_format']) && is_string($options['date_format'])) {
         $format = $options['date_format'];
     } elseif (is_int($format)) {
         $timeFormat = $options['dp_pick_time'] ? DateTimeType::DEFAULT_TIME_FORMAT : \IntlDateFormatter::NONE;
         $intlDateFormatter = new \IntlDateFormatter(\Locale::getDefault(), $format, $timeFormat, null, \IntlDateFormatter::GREGORIAN, null);
         $format = $intlDateFormatter->getPattern();
     }
     // use seconds if it's allowe in format
     $options['dp_use_seconds'] = strpos($format, 's') !== false;
     $view->vars['moment_format'] = $this->formatConverter->convert($format);
     $view->vars['type'] = 'text';
     $dpOptions = array();
     foreach ($options as $key => $value) {
         if (false !== strpos($key, "dp_")) {
             // We remove 'dp_' and camelize the options names
             $dpKey = substr($key, 3);
             $dpKey = preg_replace_callback('/_([a-z])/', function ($c) {
                 return strtoupper($c[1]);
             }, $dpKey);
             $dpOptions[$dpKey] = $value;
         }
     }
     $view->vars['datepicker_use_button'] = empty($options['datepicker_use_button']) ? false : true;
     $view->vars['dp_options'] = $dpOptions;
 }
 /**
  * {@inheritdoc}
  */
 public function finishView(FormView $view, FormInterface $form, array $options)
 {
     $format = $this->getDefaultFormat();
     if (isset($options['date_format']) && is_string($options['date_format'])) {
         $format = $options['date_format'];
     } else {
         if (isset($options['format']) && is_string($options['format'])) {
             $format = $options['format'];
         }
     }
     $view->vars['moment_format'] = $this->formatConverter->convert($format);
     $view->vars['type'] = 'text';
     $dpOptions = array();
     foreach ($options as $key => $value) {
         if (false !== strpos($key, "dp_")) {
             // We remove 'dp_' and camelize the options names
             $dpKey = substr($key, 3);
             $dpKey = preg_replace_callback('/_([a-z])/', function ($c) {
                 return strtoupper($c[1]);
             }, $dpKey);
             $dpOptions[$dpKey] = $value;
         }
     }
     $view->vars['datepicker_use_button'] = empty($options['datepicker_use_button']) ? false : true;
     $view->vars['dp_options'] = $dpOptions;
 }
 /**
  * @expectedException        Sonata\CoreBundle\Exception\InvalidParameterException
  * @expectedExceptionMessage PHP Date format 'unexisting format' is not a convertible moment.js format; please add it to the 'Sonata\CoreBundle\Date\MomentFormatConverter' class by submitting a pull request if you want it supported.
  */
 public function testPhpToMomentUnsupported()
 {
     $mfc = new MomentFormatConverter();
     $unexistingFormat = "unexisting format";
     $mfc->convert($unexistingFormat);
 }
 public function testPhpToMoment()
 {
     $mfc = new MomentFormatConverter();
     $phpFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ";
     $this->assertEquals('YYYY-MM-DDTHH:mm:ssZ', $mfc->convert($phpFormat));
     $phpFormat = 'yyyy-MM-dd HH:mm:ss';
     $this->assertEquals('YYYY-MM-DD HH:mm:ss', $mfc->convert($phpFormat));
     $phpFormat = 'yyyy-MM-dd HH:mm';
     $this->assertEquals('YYYY-MM-DD HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'yyyy-MM-dd';
     $this->assertEquals('YYYY-MM-DD', $mfc->convert($phpFormat));
     $phpFormat = 'dd.MM.yyyy, HH:mm';
     $this->assertEquals('DD.MM.YYYY, HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'dd.MM.yyyy, HH:mm:ss';
     $this->assertEquals('DD.MM.YYYY, HH:mm:ss', $mfc->convert($phpFormat));
     $phpFormat = 'dd.MM.yyyy';
     $this->assertEquals('DD.MM.YYYY', $mfc->convert($phpFormat));
     $phpFormat = 'd.M.yyyy';
     $this->assertEquals('D.M.YYYY', $mfc->convert($phpFormat));
     $phpFormat = 'd.M.yyyy HH:mm';
     $this->assertEquals('D.M.YYYY HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'd.M.yyyy HH:mm:ss';
     $this->assertEquals('D.M.YYYY HH:mm:ss', $mfc->convert($phpFormat));
     $phpFormat = 'dd/MM/yyyy';
     $this->assertEquals('DD/MM/YYYY', $mfc->convert($phpFormat));
     $phpFormat = 'dd/MM/yyyy HH:mm';
     $this->assertEquals('DD/MM/YYYY HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'EE, dd/MM/yyyy HH:mm';
     $this->assertEquals('ddd, DD/MM/YYYY HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'dd-MM-yyyy';
     $this->assertEquals('DD-MM-YYYY', $mfc->convert($phpFormat));
     $phpFormat = 'dd-MM-yyyy HH:mm';
     $this->assertEquals('DD-MM-YYYY HH:mm', $mfc->convert($phpFormat));
     $phpFormat = 'dd-MM-yyyy HH:mm:ss';
     $this->assertEquals('DD-MM-YYYY HH:mm:ss', $mfc->convert($phpFormat));
     $phpFormat = 'dd.MM.y HH:mm:ss';
     $this->assertEquals('DD.MM.YYYY HH:mm:ss', $mfc->convert($phpFormat));
     $phpFormat = 'D MMM y';
     $this->assertEquals('D MMM YYYY', $mfc->convert($phpFormat));
 }
 public function testPhpToMoment()
 {
     $mfc = new MomentFormatConverter();
     $phpFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ";
     $this->assertEquals("YYYY-MM-DDTHH:mm:ssZ", $mfc->convert($phpFormat));
     $phpFormat = "yyyy-MM-dd HH:mm:ss";
     $this->assertEquals("YYYY-MM-DD HH:mm:ss", $mfc->convert($phpFormat));
     $phpFormat = "yyyy-MM-dd HH:mm";
     $this->assertEquals("YYYY-MM-DD HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "yyyy-MM-dd";
     $this->assertEquals("YYYY-MM-DD", $mfc->convert($phpFormat));
     $phpFormat = "dd.MM.yyyy, HH:mm";
     $this->assertEquals("DD.MM.YYYY, HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "dd.MM.yyyy, HH:mm:ss";
     $this->assertEquals("DD.MM.YYYY, HH:mm:ss", $mfc->convert($phpFormat));
     $phpFormat = "dd.MM.yyyy";
     $this->assertEquals("DD.MM.YYYY", $mfc->convert($phpFormat));
     $phpFormat = "d.M.yyyy";
     $this->assertEquals("D.M.YYYY", $mfc->convert($phpFormat));
     $phpFormat = "d.M.yyyy HH:mm";
     $this->assertEquals("D.M.YYYY HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "d.M.yyyy HH:mm:ss";
     $this->assertEquals("D.M.YYYY HH:mm:ss", $mfc->convert($phpFormat));
     $phpFormat = "dd/MM/yyyy";
     $this->assertEquals("DD/MM/YYYY", $mfc->convert($phpFormat));
     $phpFormat = "dd/MM/yyyy HH:mm";
     $this->assertEquals("DD/MM/YYYY HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "EE, dd/MM/yyyy HH:mm";
     $this->assertEquals("ddd, DD/MM/YYYY HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "dd-MM-yyyy";
     $this->assertEquals("DD-MM-YYYY", $mfc->convert($phpFormat));
     $phpFormat = "dd-MM-yyyy HH:mm";
     $this->assertEquals("DD-MM-YYYY HH:mm", $mfc->convert($phpFormat));
     $phpFormat = "dd-MM-yyyy HH:mm:ss";
     $this->assertEquals("DD-MM-YYYY HH:mm:ss", $mfc->convert($phpFormat));
     $phpFormat = "dd.MM.y HH:mm:ss";
     $this->assertEquals("DD.MM.YYYY HH:mm:ss", $mfc->convert($phpFormat));
     $phpFormat = "D MMM y";
     $this->assertEquals("D MMM YYYY", $mfc->convert($phpFormat));
 }