string La fecha tiene este aspectoencontrar si la fecha es más de 30 días
2011-08-19 17:14:40
(año-mes-día horas: minutos: segundos)
¿Cómo puedo saber si la fecha es anterior a la fecha actual con más de 30 días?
string La fecha tiene este aspectoencontrar si la fecha es más de 30 días
2011-08-19 17:14:40
(año-mes-día horas: minutos: segundos)
¿Cómo puedo saber si la fecha es anterior a la fecha actual con más de 30 días?
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()
strtotime('2011-08-19 17:14:40') + 30 * 24 * 60 * 60 < time();
Debe ser 'strtotime ('2011-08-19 17:14:40') + 30 * 24 * 60 * 60
@nobody Tiene> 2000 rep. Puedes corregirlo tú mismo, como yo lo hice. :) – AgentConundrum
@ 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
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";
}
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.';
}
¿Puede vincular a la documentación de diff ($ now) -> days? me gustaría ajustarlo durante horas, no días. Gracias. – Jay42
[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. –
es útil, +1 para ello :) –