1

我试图在 PHP 中获取当前时间和 filemtime 之间的差异。

time 和 filemtime 似乎返回正确的值,因为当应用于 date 函数时,这些值打印正确的日期。根据 date 函数,time() 函数和 filemtime 之间的差异是 1 小时。但是,当我尝试获取返回的时间戳值之间的差异时,差异为 215。例如,见下文:

当前时间 = 1339599628,date() 函数显示 13-06-2012 16:06:28 00 文件修改时间 = 1339599413,date() 函数显示 13-06-2012 15:06:30 30

这似乎是正确的,但我看不出如何检查这些日期之间的秒数差异,因为 1 小时有 3600 秒,但差异只有 215。

此外,我尝试了以下时间戳值:1339599599 = 13-06-2012 15:06:59 59 1339599600 = 13-06-2012 16:06:00 00

因此,第一个时间戳值增加了 1,但日期相差 1 小时。

有任何想法吗?

4

4 回答 4

3

您似乎对时区差异有疑问。尝试查看gmdate函数。

或者更好的是,在获得这些时间戳之前,调用date_default_timezone_set('UTC').

于 2012-06-14T08:16:14.957 回答
1

我遇到了同样的问题,在我的情况下 time() 和 filemtime() 之间的时间差是 51 秒。我不知道是什么原因造成的,但我确实找到了解决方法。创建文件时,我使用touch($file, time()). 现在,创建文件的创建时间设置为与 time()“同步”。

于 2014-05-19T20:17:24.390 回答
0

我不太明白你的问题...... time 和 filemtime 都返回时间戳。

最大一个 - 最小一个 = 差异(以秒为单位)。它不应该有更多的东西。

于 2012-06-14T08:14:23.623 回答
0

我最近也遇到了同样的问题,检查系统端后发现系统时间stat命令提供的显示上次修改时间的时间有差异。

-bash$ date;touch test;stat test;date
Sat Aug 22 08:06:35 BRT 2015
  File: `test'
  Size: 0               Blocks: 1          IO Block: 32768  regular empty file
Device: 13h/19d Inode: 25189989    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (/)   Gid: (/)
Access: 2015-08-22 08:07:29.968227010 -0300
Modify: 2015-08-22 08:07:29.968227064 -0300
Change: 2015-08-22 08:07:29.968238305 -0300
Sat Aug 22 08:06:35 BRT 2015

在我的情况下,差异是 53 秒。

我测试的其他机器没有显示出这种差异。

在主机上测试。

于 2015-08-22T11:24:11.823 回答