PHP - 如何将文件修改日期与当前日期进行比较

时间:2018-03-28 02:45:20

标签: php

我想将文件修改日期与当前日期进行比较。

我尝试了以下(适用于当前时间):

$currentDay = date("d");
$currentMonth = date("m");
$currentYear = date("y");
$currentHour = date("h");
$currentMinute = date("i");

现在我试图从我的文件中获取文件修改年份:

$subst1 = file("f1/subst_001.htm");
$mod_date=date("y", filemtime($subst1));
echo $mod_date;

但它给了我一年“70”,这是从1970年开始,我做错了什么?

不,我已经检查过该文件是否说明了这一年......

4 个答案:

答案 0 :(得分:3)

filetime()函数需要string作为文件路径。在这里,您尝试传递从file()

返回的array

尝试这样,

$filename= "f1/subst_001.htm";
if (file_exists($filename)) {
   $mod_date = date("y", filemtime($filename));
   echo $mod_date;
}
  

1970年1月1日是所谓的Unix时代。这是他们的日期   开始计算Unix时间。如果你把这个日期作为回报   值,它通常意味着将您的日期转换为Unix   timestamp返回一个(接近)零结果。所以日期转换   没有成功。很可能是因为它收到错误的输入。

礼貌:Oldskool

答案 1 :(得分:0)

使用正确的日期格式参数。

'y'返回年份的两位数字表示:

date ("y", filemtime($filename)) // 18

'Y'返回年份的四位数字表示:

date ("Y", filemtime($filename)) // 2018

答案 2 :(得分:0)

试试这个:

$mod_date=date("y", filemtime("f1/subst_001.htm"));
echo $mod_date;

filemtime()string:pathname作为参数,但file()函数将文件读入数组。希望有所帮助。

答案 3 :(得分:0)

尝试在filemtime结果上使用var_dump - 它可能是假的(或转换为int 0的东西)。由于时间0是1970年1月1日,这可以解释为什么年份为' 70'

如果是这种情况,则表示找不到您的文件。