Jeśli ocena z datą jest tworzona w inteligentnym php

Oct 08 2020

Jak mogę utworzyć walidację w smarty php, pozwalając, aby wartość pojawiła się, jeśli jest w ciągu 30 dni od określonej daty?

W tablicy:

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

Nie wiem, jakie byłoby do tego idealne pole, ale możemy użyć datecreatedlub normalisedDateCreated.

Wyglądałoby to mniej więcej tak:

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

Odpowiedzi

1 DarkKnight Oct 08 2020 at 20:57

Możesz uzyskać bieżącą datę używając, $smarty.nowa następnie odjąć od niej 30 dni.

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

Ale byłoby to uproszczone, gdyby można było po prostu przekazać inną zmienną z php, która jest 30 dni przed bieżącą datą.

Kolejne rozwiązanie zaproponowane przez @zecaluis

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