我想将文件修改日期与当前日期进行比较。
我尝试了以下(适用于当前时间):
$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年开始,我做错了什么?
不,我已经检查过该文件是否说明了这一年......
答案 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'
如果是这种情况,则表示找不到您的文件。