我试图弄清楚如何与date()
. 我正在学习如何使用此函数将当前时间与缓存文件上次修改时间进行比较的教程。在教程中,作者使用“10800”作为 3 小时,代码如下所示:
(filemtime($cache) < (time()-10800))
我理解这种比较的工作原理没有问题,但我只是不明白时间的表达方式"10800"是如何格式化的。
只是为了记录,我花了整整 15 分钟寻找答案,所以我不只是对谷歌一无所知哈哈。
谢谢!
我试图弄清楚如何与date()
. 我正在学习如何使用此函数将当前时间与缓存文件上次修改时间进行比较的教程。在教程中,作者使用“10800”作为 3 小时,代码如下所示:
(filemtime($cache) < (time()-10800))
我理解这种比较的工作原理没有问题,但我只是不明白时间的表达方式"10800"是如何格式化的。
只是为了记录,我花了整整 15 分钟寻找答案,所以我不只是对谷歌一无所知哈哈。
谢谢!
10800 以秒为单位..
自 epoch 以来,所有 unix 时间戳都以秒为单位……1 是 1970 年的第一秒。
这解释了为什么当你的 strtotime 值不好并且你用 date 来解释它时,即
date(strtotime("last tomorrowday"));
它最终向您显示 1969-12-31 ... strtotime 返回 0,如果 1 是 1970 年的第一秒,那么 0 将被解释为 1969 年的最后一秒
就在几秒钟内,
3 hours = 3 * 60 * 60 = 10800 seconds
作为时间函数返回以 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来的秒数测量的当前时间。您需要从中减去10800
才能获得时间的时间戳 before 3 hours
。