84 votes

rechercher si la date est antérieure à 30 jours

La chaîne de date ressemble à ceci

2011-08-19 17:14:40

(année-mois-jour heures:minutes:secondes)

Comment puis-je savoir si la date est plus ancienne que la date actuelle avec plus de 30 jours ?

182voto

RiaD Points 15744

Essayez d'utiliser quelque chose comme ceci :

  if(strtotime('2011-08-19 17:14:40') < strtotime('-30 days')) {
     // this is true
 }

En outre, cette chaîne semble être stockée dans SQL en tant que champ datetime/timestamp. Vous pouvez sélectionner directement toutes les entrées de votre base de données avec des dates anciennes en utilisant :

 SELECT ... WHERE `datetime` + INTERVAL 30 DAY < NOW()

55voto

Collin Krawll Points 392

Si vous utilisez PHP 5.3 ou supérieur, vous pouvez faire :

 $someDate = new \DateTime('2011-08-19 17:14:40');
$now = new \DateTime();

if($someDate->diff($now)->days > 30) {
   echo 'The date was more than 30 days ago.';
}

8voto

Shriganesh Shintre Points 2014

Vous pouvez utiliser Carbon comme suit

 if (30 - ((new \Carbon\Carbon($given_date, 'UTC'))->diffInDays()) < 0) {
    echo "The date is older than 30 days";
}

1voto

gion_13 Points 15594
strtotime('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 < time();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X