2009-12-03 28 views

Respuesta

26
if (strtotime("2008-02-16 12:59:57") >= time() - 24 * 60 * 60) 
{ /*LESS*/ } 
2

p. Ej. a través de strtotime y time().
La diferencia debe ser inferior a 86400 (segundos por día).

<?php 
echo 'now: ', date('Y-m-d H:i:s'), "\n"; 
foreach(array('2008-02-16 12:59:57', '2009-12-02 13:00:00', '2009-12-02 20:00:00') as $input) { 
    $diff = time()-strtotime($input); 
    echo $input, ' ', $diff, " ", $diff < 86400 ? '+':'-', "\n"; 
} 

impresiones

now: 2009-12-03 18:02:29 
2008-02-16 12:59:57 56696552 - 
2009-12-02 13:00:00 104549 - 
2009-12-02 20:00:00 79349 + 

sólo la última prueba de la fecha/hora establece menos de 24 horas en el pasado.

+2

Está bien (supongo) en el caso en que necesita "menos de 24 HORAS". Solo recuerda que no debes asumir que un día siempre tiene 24 horas (como dijiste en tu respuesta). Si pasa de diferencia de horas a diferencia de días, es mejor que use una biblioteca DateTime. Para una mejor explicación de los problemas de tiempo, puede consultar este artículo: http://www.odi.ch/prog/design/datetime.php –

4
if ((time() - strtotime("2008-02-16 12:59:57")) < 24*60*60) { 
    // less than 24 hours ago 
} 
2

Php tiene un comparison function between two date/time objects, pero realmente no me gusta mucho. Puede ser impreciso

Lo que hago es usar strtotime() para hacer una marca de tiempo de unix fuera del objeto de fecha, luego compararlo con la salida de tiempo().

+0

'DateTime' es PHP 5.3 y superior solamente. –

20

Simplemente añadiendo otra respuesta, utilizando strtotime 's fechas relativas:

$date = '2008-02-16 12:59:57'; 
if (strtotime("$date +1 day") <= time()) { 
    // Do something 
} 

Creo que esto hace que el código sea más legible.

0

sólo lo utilizan .....

if(strtotime($date_start) >= strtotime($currentDate)) 
{ 
// Your code 
} 
0

Debe ser usted fecha variable, como

$date_value = "2013-09-12"; 
$Current_date = date("Y-m-d"); OR $current_date_time_stamp = time(); 

Es posible comparar ambos fecha después de la fecha de convertir en marca de tiempo por lo que:

if(strtotime($current_date) >= strtotime($date_value)) { 
echo "current date is bigger then my date value"; 
} 

O

if($current_date_time_stamp >= strtotime($date_value)) { 
echo "current date is bigger then my date value"; 
} 
0

tal vez va a ser más fácil de entender ...

$my_date  = '2008-02-16 12:59:57'; 
$one_day_after = date('Y-m-d H:i:s', strtotime('2008-02-16 12:59:57 +1 days')); 

if($my_date < $one_day_after) { 
echo $my_date . " is less than 24 hours ago!"; 
} else { 
echo $my_date . " is more than 24 hours ago!"; 
} 
0

Usted puede usar PHP simple de hacer esto:

$date = new simpleDate(); 
echo $date->now()->subtractHour(24)->compare('2008-02-16 12:59:57')->isBefore(); 

favor verifique tutoriales. Click here.