2011-10-15 10 views

Respuesta

6

Dado que las marcas de tiempo UNIX son sólo números de segundos, sólo tiene que utilizar la diferencia:

$purchasedToday = $current_time - $purchase_time < 24 * 60 * 60; 
if ($purchasedToday) { 
    echo 'You just bought the item'; 
} else { 
    echo 'You bought the item some time ago'; 
} 
+0

Gracias, que funcionó :) – kht

6

Si son marcas de tiempo UNIX, entonces se puede calcular esto por sí mismo muy fácil, ya que son segundos.

$seconds = $current_time - $purchase_time 
$hours = floor($seconds/3600); 
if ($hours < 24){ 
    //success 
} 
+0

1 Que es una solución muy elegante. Salsa impresionante. – ehime

0

tuve usar algo como esto:

<?php 
if(date("U", strtotime("-24 hours", $current_time) > date("U", $purchase_time)) { 
    echo "More then 24 hours you purchased this radio"; 
} 
?> 

Esto funciona incluso si la marca de tiempo no es una marca de tiempo UNIX.

2

Puede construir un objeto DateTime y luego usarlo es diff() método para calcular la diferencia entre $ tiempo_actual y $ purchase_time:

$currentTime = new DateTime(); 
$purchaseTime = new DateTime('2011-10-14 12:34:56'); 

// Calculate difference: 
$difference = $currentTime->diff($purchaseTime); 

if ($difference->days >= 1) { 
    echo 'More than 24 hours ago.'; 
} 

Esto es más fiable que el cálculo de la diferencia usted mismo, ya que este método se ocupa de zonas horarias y horario de verano.

1

Algo como esto:

$difference=time() - $last_login; 
Cuestiones relacionadas