-3

实际上,我在一个 php 网站上工作,其中用户将一些条目广告到数据库中。在插入时,他添加了一个日期字段,该字段也存储在数据库中。现在我想要那个条目的年龄(将该条目保存到数据库后经过了多少时间)。为此,我调用了一个函数,将日期传递给该函数,然后使用 strtotime() 函数以秒为单位获得该时间。为了获得经过的时间,我从当前时间中减去转换后的时间。在这里,我遇到了主要问题。它给了我负面的价值。而且我被困在这里这么久,我无法弄清楚为什么它返回负值。请帮我解决这个问题。这是我尝试过的代码。

function timeSpan($string) 
{ 
$timestamp = strtotime($string); 
$now = time(); 
$timeSpan = $now-$timestamp; 
...........
...........
}

在这里,我将日期时间作为 $string 传递给表单提交时保存在数据库中的函数。我用“datetime”类型保存了日期。现在 $timeSpan 变量返回一个负值。有人知道为什么它返回负值吗?

4

2 回答 2

0

如果你的减法返回一个负值,那是因为存储的 time() 比服务器中的当前时间要新。

time()是自 1970 年 1 月 1 日以来经过的秒数。

例如,如果您保存的时间戳是 111,而您的服务器说当前时间是 100,您将得到一个负值。

于 2013-08-30T13:14:18.033 回答
0

嘿伙计们,我得到了解决方案。实际上该函数返回服务器时间。那个时间取决于服务器所在的位置。它在那个时候回归。所以我指定了我的时区。现在它返回正确的时间。

于 2013-11-08T09:45:11.197 回答