/** * {@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)); }