[Попытка нового ответа, поскольку этот подход существенно отличается от предыдущего ответа.]
Я предполагаю, что вы будете звонить Zend_Date::toString()
в представлении.
Итак, возможно, вы могли бы сохранить список переопределений формата в файле конфигурации. Во время Bootstrap
проверьте, требует ли загруженный языковой стандарт переопределения, и сохраните формат в представлении. Затем всякий раз, когда вы выводите дату, используйте этот формат.
Примерно так:
In application/configs/application.ini
:
dateFormat.nl_NL = "d-m-Y"
В application/Bootstrap.php
:
protected function _initDateFormat()
{
// Bootstrap and grab the view
$this->bootstrap('view');
$view = $this->getResource('view');
// grab the date format overrides from options or null for locale-default
$options = $this->getOptions();
$this->bootstrap('locale');
$locale = $this->getResource('locale');
$dateFormat = isset($options['dateFormat'][$locale])
? $options['dateFormat'][$locale]
: null;
// stash the dateFormat into the view
$view->dateFormat = $dateFormat;
}
Наконец, в скрипте вида, где $date
это Zend_Date
объект:
<p>The date is <?= $date->toString($this->dateFormat) ?>.</p>
Если $view->dateFormat
равно нулю, будет использоваться формат для текущей локали. В противном случае ваше переопределение будет применяться.