2011-08-20 27 views

Respuesta

100

Trate de usar algo como esto:

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

Además, esta cadena parece que se almacena en SQL como campo de fecha y hora/fecha y hora. Puede seleccionar directamente todas las entradas de la base de datos con fechas antiguas usando:

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

es útil, +1 para ello :) –

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

Debe ser 'strtotime ('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 nobody

+3

@nobody Tiene> 2000 rep. Puedes corregirlo tú mismo, como yo lo hice. :) – AgentConundrum

+3

@ gion_13 En general, es una mala idea hacer ese tipo de cálculos '24 * 60 * 60', porque pueden volverse imprecisos cuando se trata de cosas como el horario de verano. Es mejor usar algo como lo sugiere RiaD, y dejar que 'strtotime()' maneje los cálculos relativos de tiempo. – AgentConundrum

7

se puede utilizar de carbono de la siguiente manera

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

Si se encuentra en PHP 5.3 o superior que puede hacer:

$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.'; 
} 
+0

¿Puede vincular a la documentación de diff ($ now) -> days? me gustaría ajustarlo durante horas, no días. Gracias. – Jay42

+0

[diff] (http://php.net/manual/en/datetime.diff.php) devuelve un [DateInterval] (http://php.net/manual/en/class.dateinterval.php). DateInterval tiene una propiedad 'h' por 'horas', pero en realidad es un fragmento de la diferencia (en lo que se refiere a y (años), m (meses), d (días), etc.). Para obtener horas, haría '($ now-> getTimestamp() - $ someDate-> getTimestamp())/3600'. Esto devolvería un decimal. A continuación, puede usar opcionalmente [round()] (http://php.net/manual/en/function.round.php), [intval()] (http://php.net/manual/en/function. intval.php), etc. si lo quiere como un entero. –

Cuestiones relacionadas