2010-01-17 220 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