База знаний
Войдите в личный кабинет для возможности задавать вопросы и отвечать на комментарии.
Полезная информация

Как вывести срок доставки в своем формате

Поддержка Bodysite
Поддержка Bodysite
1 апреля 2019 10:55
+1

На примере карточки товара (шаблон dp_plugin_product.html). Для информационной страницы отформатировать дату можно аналогичным способом. 

В шаблоне «Карточка товара» вместо {$service.estimated_date_html} нужно заменить код на свой вариант. Варианты описаны ниже. 

Форматирование даты на конкретных примерах 

Задача 1. Для всех способов доставки, где проставляется дата, указать дату в формате «2 апреля». Если дата представлена интервалом, вывести максимальный срок доставки. 

Как реализовать: 

{if $service.estimated_date.type == "date"}
    {$service.estimated_date.value|date_format:"%e %B"}
{elseif $service.estimated_date.type == "date-interval"}
    {$service.estimated_date.max|date_format:"%e %B"}
{else}
    {$service.estimated_date_html}
{/if}

Задача 2. Если дата выводится интервалом, то вывести ее в формате «20.04.-25.04.2019» (то есть у первой даты не выводить год).

Как реализовать:

{if $service.estimated_date.type == "date-interval"}
    {$service.estimated_date.min|date_format:"%d.%m.-"}
    {$service.estimated_date.max|date_format:"%d.%m.%Y"}
{/if}

Задача 3. Указать дату в формате дня недели «доставим в Пн», для интервалов поставить «доставим с Пн по Чт».

Как реализовать: 

{if $service.estimated_date.type == "date"}
    {$service.estimated_date.value|date_format:"доставим в %a"}
{elseif $service.estimated_date.type == "date-interval"}
    {$service.estimated_date.min|date_format:"доставим с %a "}
    {$service.estimated_date.max|date_format:"по %a"}
{else}
    {$service.estimated_date_html}
{/if}

Другие варианты форматирования даты

1.04.2019:

|date_format:"%e.%m.%G"

01.04.2019:

|date_format:"%d.%m.%G"

1.04:

|date_format:"%e.%m"

1 апреля 2019:

|date_format:"%d %B %G"

1 апр, Пн:

|date_format:"%d %b, %a"

01 апреля, Пн:

|date_format:"%e %B, %a"

Ссылка на документацию Smarty