Se declaração com data criar em smart php

Oct 08 2020

Como posso criar uma validação no smarty php, permitindo que o valor apareça se for dentro de 30 dias da data especificada?

Na matriz:

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

Não sei qual seria o campo ideal para isso, mas podemos usar datecreatedou normalisedDateCreated.

Seria mais ou menos assim:

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

Respostas

1 DarkKnight Oct 08 2020 at 20:57

Você pode obter a data atual usando $smarty.nowe, em seguida, subtrair os dias 30 dessa data.

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

Mas seria simplificado se pudesse apenas passar outra variável do php que é 30 dias antes da data atual.

Outra solução proposta por @zecaluis

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