2011-05-27 16 views
28

¿Cómo comparar los tiempos en PHP?PHP compare el tiempo

quiero decir esto:

$ThatTime ="14:08:10"; 
$todaydate = date('Y-m-d'); 
$time_now=mktime(date('G'),date('i'),date('s')); 
$NowisTime=date('G:i:s',$time_now); 
if($NowisTime >= $ThatTime) { 
    echo "ok"; 
} 

El código anterior no se imprime bien. Yo esperaba que lo hiciera

+2

Lo que se está tratando de lograr? –

Respuesta

52
$ThatTime ="14:08:10"; 
if (time() >= strtotime($ThatTime)) { 
    echo "ok"; 
} 

Una solución usando DateTime (que también se refiere a la zona horaria).

$dateTime = new DateTime($ThatTime); 
if ($dateTime->diff(new DateTime)->format('%R') == '+') { 
    echo "OK"; 
} 

http://php.net/datetime.diff

+0

bien, pero el tiempo() tomará el tiempo del servidor? - Porque necesito especificar la zona horaria predeterminada cada vez por date_default_timezone_set ($ TimeZone); –

+0

@DiegoP .: Debo decir, no me había dado cuenta antes, pero tienes razón. Sin embargo, he agregado otra solución usando 'DateTime'. – KingCrunch

+0

Da un error = ((Error fatal: Llamada al método indefinido DateTime :: diff() –

10

Para ver parte del tiempo curent es mayor o igual a 14:08:10 hacer esto:

if (time() >= strtotime("14:08:10")) { 
    echo "ok"; 
} 

Dependiendo de las fuentes de entrada, asegúrese de dar cuenta de zona horaria.

Ver PHP time() y PHP strtotime()

4

Una manera sencilla de comparar el tiempo es:

$time = date('H:i:s',strtotime("11 PM")); 
if($time < date('H:i:s')){ 
    // your code 
}