|
@@ -31,11 +31,13 @@ class DateType extends AbstractType
|
|
\Locale::getDefault(),
|
|
\Locale::getDefault(),
|
|
$options['format'],
|
|
$options['format'],
|
|
\IntlDateFormatter::NONE,
|
|
\IntlDateFormatter::NONE,
|
|
- \DateTimeZone::UTC
|
|
|
|
|
|
+ \DateTimeZone::UTC,
|
|
|
|
+ \IntlDateFormatter::GREGORIAN,
|
|
|
|
+ $options['pattern']
|
|
);
|
|
);
|
|
|
|
|
|
- if ($options['widget'] === 'single_text') {
|
|
|
|
- $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $options['format'], \IntlDateFormatter::NONE));
|
|
|
|
|
|
+ if ($options['widget'] === 'single-text') {
|
|
|
|
+ $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $options['format'], \IntlDateFormatter::NONE, \IntlDateFormatter::GREGORIAN, $formatter->getPattern()));
|
|
} else {
|
|
} else {
|
|
$yearOptions = $monthOptions = $dayOptions = array();
|
|
$yearOptions = $monthOptions = $dayOptions = array();
|
|
$widget = $options['widget'];
|
|
$widget = $options['widget'];
|
|
@@ -91,19 +93,15 @@ class DateType extends AbstractType
|
|
$view->set('widget', $form->getAttribute('widget'));
|
|
$view->set('widget', $form->getAttribute('widget'));
|
|
|
|
|
|
if ($view->hasChildren()) {
|
|
if ($view->hasChildren()) {
|
|
-
|
|
|
|
- //if custom date_pattern is set then use it or else use the the formatter or the default pattern
|
|
|
|
- if (!$pattern = $form->getAttribute('date_pattern')) {
|
|
|
|
- $pattern = $form->getAttribute('formatter')->getPattern();
|
|
|
|
-
|
|
|
|
- // set right order with respect to locale (e.g.: de_DE=dd.MM.yy; en_US=M/d/yy)
|
|
|
|
- // lookup various formats at http://userguide.icu-project.org/formatparse/datetime
|
|
|
|
- if (preg_match('/^([yMd]+).+([yMd]+).+([yMd]+)$/', $pattern)) {
|
|
|
|
- $pattern = preg_replace(array('/y+/', '/M+/', '/d+/'), array('{{ year }}', '{{ month }}', '{{ day }}'), $pattern);
|
|
|
|
- } else {
|
|
|
|
- // default fallback
|
|
|
|
- $pattern = '{{ year }}-{{ month }}-{{ day }}';
|
|
|
|
- }
|
|
|
|
|
|
+ $pattern = $form->getAttribute('formatter')->getPattern();
|
|
|
|
+
|
|
|
|
+ // set right order with respect to locale (e.g.: de_DE=dd.MM.yy; en_US=M/d/yy)
|
|
|
|
+ // lookup various formats at http://userguide.icu-project.org/formatparse/datetime
|
|
|
|
+ if (preg_match('/^([yMd]+).+([yMd]+).+([yMd]+)$/', $pattern)) {
|
|
|
|
+ $pattern = preg_replace(array('/y+/', '/M+/', '/d+/'), array('{{ year }}', '{{ month }}', '{{ day }}'), $pattern);
|
|
|
|
+ } else {
|
|
|
|
+ // default fallback
|
|
|
|
+ $pattern = '{{ year }}-{{ month }}-{{ day }}';
|
|
}
|
|
}
|
|
|
|
|
|
$view->set('date_pattern', $pattern);
|
|
$view->set('date_pattern', $pattern);
|