Если статус с датой создать в smart php

Oct 08 2020

Как я могу создать в smarty php проверку, позволяющую отображать значение, если оно находится в пределах 30 дней от указанной даты?

В массиве:

Array (4)
0 => Array (13)
  id => 6496
  invoicenum => 6496
  datecreated => "08/09/2020"
  normalisedDateCreated => "2020-09-08"

Я не знаю, какое поле для этого было бы идеальным, но мы можем использовать datecreatedили normalisedDateCreated.

Это выглядело бы примерно так:

{if $invoice.datecreated ... } if it is more than 30 days from the current date it should display NO
    YES
{else}
    NO
{/if}

Ответы

1 DarkKnight Oct 08 2020 at 20:57

Вы можете получить текущую дату, используя, $smarty.nowа затем вычесть из нее 30 дней.

{if "$smarty.now -30 Days"|date_format:'%Y-%m-%d' < $invoice.normalisedDateCreated}
    YES
{else}
    NO
{/if}

Но это можно было бы упростить, если бы можно было просто передать другую переменную из php, которая за 30 дней до текущей даты.

Другое решение, предложенное @zecaluis

{if strtotime($invoice.normalisedDateCreated) > strtotime('-30 days')}