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.
Vous comparez des chaînes. Pour les dates, cela ne fonctionnera que si vous utilisez un format aaaammjj ou similaire.
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.