1

Тема: Help! Не работает условие оператора времени

Почему не срабатывает данное условие? (все принудительно в main.tpl)

{$current_time = date('H:i')}
{if $current_time >= '12:00' && $current_time < '02:00'}
   <strong>Открыто</strong>
{else:}
   <strong>Закрыто</strong>
{/if}

И возможно ли как-то напрямую составить условие, без определения переменной?

Thumbs up Thumbs down

2

Re: Help! Не работает условие оператора времени

А если быть точнее, то срабатывает else:, когда должно срабатывать само условие...

Thumbs up Thumbs down

3

Re: Help! Не работает условие оператора времени

2  Марк '12:00' это с какой точки отсчета, предположу что от "Рождества Христова", наверное ваше условие просто об этом не знает!? smile))

Когда то разрабатывал модули для ImageCMS Corporate

4

Re: Help! Не работает условие оператора времени

Sempai пишет:

2  Марк '12:00' это с какой точки отсчета, предположу что от "Рождества Христова", наверное ваше условие просто об этом не знает!? smile))

А date('H:i') разве не указывает на текущее время?

Thumbs up Thumbs down

5

Re: Help! Не работает условие оператора времени

Пример реализации

Когда то разрабатывал модули для ImageCMS Corporate

6 Отредактировано Марк (17-11-2017 21:53:03)

Re: Help! Не работает условие оператора времени

Спасибо, добрый человек!)

Я все это дело упростил для вставки прям в .tpl, так что пользуемся wink Все работает

{$start_work = "12:00"}
{$end_work = "02:00"}
{$currentTime = date('H:i')}
{$currentDateTime = strtotime(date('Y-m-d')  ." ". $currentTime)}
{$previousDayEnd}
{$startDateTime}
{$endDateTime}
{$startDateTime = strtotime(date('Y-m-d')  ." ". $start_work)}

{if strtotime($start_work) <= strtotime($end_work)}
     {$endDateTime = strtotime(date('Y-m-d')  ." ". $end_work)}
     {$previousDayEnd = strtotime(date('Y-m-d')  ." ". $end_work . "-1 days")}
{else:}
     {$endDateTime = strtotime(date('Y-m-d')  ." ". $end_work . "+1 days")}
     {$previousDayEnd = strtotime(date('Y-m-d')  ." ". $end_work )}
{/if}
                        
{if $currentDateTime >= $startDateTime && $currentDateTime <= $endDateTime}
     <strong>Мы открыты</strong>
          {if $currentDateTime < $startDateTime && $currentDateTime < $previousDayEnd}
               <strong>Мы открыты</strong>
          {/if}
{else:}
      <strong>Мы закрыты</strong>
{/if}

Thumbs up Thumbs down