2011-10-15 14 views

Odpowiedz

6

Ponieważ znaczniki czasu UNIX to tylko liczba sekund, wystarczy użyć różnicę:

$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

Dzięki, że pracował :) – kht

6

Jeśli są znaczniki czasu UNIX, a następnie można obliczyć ten sam naprawdę łatwe, ponieważ są one sekund.

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

+1 To bardzo eleganckie rozwiązanie. Niesamowity sos. – ehime

0

musiałem użyć czegoś takiego:

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

ta działa nawet wtedy, gdy znacznik czasu nie jest UNIX-timestamp.

2

Można skonstruować DateTime obiekt, a następnie wykorzystywać to diff() sposób obliczyć różnicę między $ current_time i $ 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.'; 
} 

To jest bardziej niezawodny niż obliczenie różnicy siebie, jako metoda ta zajmuje strefy czasowe i czas letni.

1

coś takiego:

$difference=time() - $last_login; 
Powiązane problemy