// new \IntlDateFormatter may return null instead of false in case of failure, see https://bugs.php.net/66323
if (!
$formatter) { throw new InvalidOptionsException(intl_get_error_message(),
intl_get_error_code());
} $formatter->
setLenient(false
);
if ('choice' ===
$options['widget'
]) { // Only pass a subset of the options to children
$yearOptions['choices'
] =
$this->
formatTimestamps($formatter, '/y+/',
$this->
listYears($options['years'
]));
$yearOptions['placeholder'
] =
$options['placeholder'
]['year'
];
$yearOptions['choice_translation_domain'
] =
$options['choice_translation_domain'
]['year'
];
$monthOptions['choices'
] =
$this->
formatTimestamps($formatter, '/[M|L]+/',
$this->
listMonths($options['months'
]));
$monthOptions['placeholder'
] =
$options['placeholder'
]['month'
];
$monthOptions['choice_translation_domain'
] =
$options['choice_translation_domain'
]['month'
];
$dayOptions['choices'
] =
$this->
formatTimestamps($formatter, '/d+/',
$this->
listDays($options['days'
]));
$dayOptions['placeholder'
] =
$options['placeholder'
]['day'
];
$dayOptions['choice_translation_domain'
] =
$options['choice_translation_domain'
]['day'
];
} // Append generic carry-along options