Pull to refresh

А как вы выводите дату в зависимости от локации?

Reading time1 min
Views6.4K
Всем доброго времени суток. В первую очередь хочется сказать спасибо всем кто принял участие в этом опросе. Так или иначе стало понятно, что смысл в подобного рода статьям все таки есть. Итак, ниже речь пойдет о функции которую волею случая мне пришлось написать, так как готового решения — увы не нашлось. Собсвенно сам вопрос — а как вы выводите дату в зависимости от локации? Интересно? Прошу под кат.

Сама функция была написана как фильтр-функция к шаблонизатору twig. Собственно вот сам код

public function date2($date, $format = "EEEE d/MMMM/YYYY")
    {
        if(is_string($date)){
            $date = new \DateTime($date);
        }

        $formatter = new \IntlDateFormatter(\Locale::getDefault(), \IntlDateFormatter::NONE, \IntlDateFormatter::NONE);
        $formatter->setPattern($format);

        return array('locale' => \Locale::getDefault(), 'intl' => $formatter->format($date));
    }


В принципе ничего сложно в нем вы не найдете, но тем не менее свою роль код выполняет. На вход принимает дату в виде объекта, если же приходит строка — то она превращается в объект. На выходе — массив с ключами. Первый — текущая локация, второй дата, в таком формате, который вы указываете во 2 передаваемом аргументе самой функции.

Один ньюанс данной функции — она требует установленную на сервере библиотеку intl.

В следующей статье, мы научимся делать свои фильтры для шаблона twig. Естественно при непосредственном участии Symfony2 framework. Всем удачи и приятного кодинга. Любите Symfony2 и да прибудет с вами сила.

P.S. Есть еще вот такой замечательный ресурс — userguide.icu-project.org/formatparse/datetime в нем собраны наверно все возможные форматы дат и времени, какие только встречаются.
Tags:
Hubs:
Total votes 24: ↑6 and ↓18-12
Comments14

Articles