web-dev-qa-db-fra.com

poste expire après x jours

Je souhaite créer un extrait de code pour l'expiration du message après x jours à compter de la date de publication du message. J'ai essayé avec ce code, mais j'affiche toujours la condition vraie. Qu'est-ce que je fais de travers?

$pfx_date       = get_the_date('d/m/Y');
$datacorrente   = date('d/m/Y', strtotime("-5 days"));

if ( $pfx_date <= $datacorrente ) { 
    echo 'post expired'; 
} else { 
    echo 'post open'; 
}

"-5 jours" est la variable x jours après l'expiration de la publication.

2
SURTLER77

Vous comparez des chaînes. Pour les dates, cela ne fonctionnera que si vous utilisez un format aaaammjj ou similaire.

2
Andy Macaulay-Brook

En réponse à la réponse d'Andy, vous devriez comparer des nombres entiers pour que cela fonctionne. strtotime() peut transformer n'importe quelle chaîne en entier, qui sera comparé ultérieurement pour indiquer la différence et le nombre de secondes écoulées jusqu'à présent (time()). Quelque chose comme suit:

$expired = ( ( time() - strtotime(get_the_date('Y-m-d H:i:s')) ) / DAY_IN_SECONDS ) >= 5;
if ( $expired ) { 
    echo 'post expired'; 
} else { 
    echo 'post open'; 
}

J'espère que cela pourra aider.

1
Samuel Elh