2010-01-17 596 views
1

找出時間戳1263751023是否超過60分鐘前的最佳方法是什麼?PHP日期比較函數

+0

大概這是一個文件系統時間戳或之前調用time()的結果(對於數據庫時間戳,最好是在SQL中解決問題)。請注意,在某些安裝中,文件系統和PHP服務器之間可能存在顯着的時鐘偏差。想必這裏沒關係。 – MZB 2010-01-17 19:54:30

回答

5
$time = 1263751023; 
if((time() - $time) > 60 * 60) 
{ 
    echo "Yes"; 
} 

有摸不着頭腦的兩個基本途徑。你可以找出一小時前的情況,然後檢查你正在查看的時間是否在那之後。

(time() - (60*60)) > $time; 

另一種方法是檢查一下檢查時間過後的一小時,看看是否已經通過。

($time + (60*60)) < time(); 

哦,最後是檢查兩次,這將讓你已通過

(time() - $time) > (60*60) 

一切都將讓你同樣的答案的秒數之間的差異。

+0

+1,這樣更容易閱讀。 – 2010-01-17 19:00:25

+0

'time()'以秒爲單位返回一個值 - 應該是'> 60 * 60' – 2010-01-17 19:03:59

+0

@其中:我也注意到了,修正了。 – 2010-01-17 19:04:30

2

的一種方法是計算一個時間戳和當前時間戳之間的差:

$diff = time() - $timestamp; 

然後進行測試,如果該值大於3600(60分鐘,每60秒):

$timestamp = 1263751023; 
$diff = time() - $timestamp; 
if ($diff > 3600) { 
    // timestamp is more than 60 minutes ago 
} 
+0

+1,因爲它比Chacha102的示例更容易在眼睛上(這是非常好的) – 2010-01-17 18:56:45

+0

更新爲檢查60分鐘 – 2010-01-17 19:07:41

1
$hour = 60*60; // one hour 


$time = 1263751023; // zhere you could also use time() for now 

if ($time + $hour < time()) 
{ 
    // one hour a go 
} 
+2

這沒有意義......不應該是'($ time + $ hour 2010-01-17 19:09:04