Estoy creando marcas de tiempo en PHP usando time()
;¿Cómo calcular la diferencia de tiempo entre las marcas de tiempo de Unix?
Tengo $current_time
y $purchase_time
. ¿Cómo me aseguro de que purchase_time sea menos de 24 horas de la hora actual?
Estoy creando marcas de tiempo en PHP usando time()
;¿Cómo calcular la diferencia de tiempo entre las marcas de tiempo de Unix?
Tengo $current_time
y $purchase_time
. ¿Cómo me aseguro de que purchase_time sea menos de 24 horas de la hora actual?
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';
}
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
}
1 Que es una solución muy elegante. Salsa impresionante. – ehime
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.
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.
Algo como esto:
$difference=time() - $last_login;
Gracias, que funcionó :) – kht