使用PHP确定文件夹中图像的文件年龄的任何方法?
我想删除超过2小时的旧文件,这是否可以在上传到文件夹时不将时间戳名称添加到文件名中?
如果是的话,请举个例子!
感谢
答案 0 :(得分:123)
if (time()-filemtime($filename) > 2 * 3600) {
// file older than 2 hours
} else {
// file younger than 2 hours
}
答案 1 :(得分:22)
您可以使用filemtime函数获取上次修改的日期/时间,并使用它来查看文件的年龄。
答案 2 :(得分:13)
您正在寻找filemtime功能
<?php
// outputs e.g. somefile.txt was last modified: December 29 2002 22:16:23.
$filename = 'somefile.txt';
if (file_exists($filename)) {
echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>
答案 3 :(得分:4)
请注意,在NAS / SAN存储上,最新文件的文件时间可能与PHP时间()不同,因为这些存储可能有自己的时钟。我认为这样的配置是速率的,但它让我头疼。
答案 4 :(得分:3)
我在网上挖掘了一下Stackoverflow(PHP How to find the time elapsed since a date time?),这是我的解决方案:
这是一个完整的答案,提供文件年龄的人类可读表示+检查文件是否是2小时。
<?php
function humanTiming ($time)
{
// to get the time since that moment
$time = time() - $time;
// time unit constants
$timeUnits = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
// iterate over time contants to build a human
$humanTiming;
foreach ($timeUnits as $unit => $text)
{
if ($time < $unit)
continue;
$numberOfUnits = floor($time / $unit);
// human readable token for current time unit
$humanTiming = $humanTiming.' '.$numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
// compute remaining time for next loop iteration
$time -= $unit*$numberOfUnits;
}
return $humanTiming;
}
$filename = '/path/to/your/file.extension';
if (file_exists($filename))
{
echo 'Now = '.date ("Y-m-d H:i:s.", time());
echo "<br/>$filename was last modified on " . date ("Y-m-d H:i:s.", filemtime($filename));
$time = strtotime('2010-04-28 17:25:43');
$time = filemtime($filename);
echo '<br/>File age is '.humanTiming($time).'.';
$fileAge = time()-filemtime($filename);
echo '<br/>Is file older than 2 hours? '.(($fileAge < (2*3600))?'No':'Yes').'.';
}
?>
这是我身边的输出:
Now = 2013-01-29 09:10:12.
/path/to/your/file.extension was last modified on 2013-01-29 08:07:52.
File age is 1 hour 2 minutes 20 seconds.
Is file older than 2 hours? No.
答案 5 :(得分:1)
尝试使用filemtime()
此函数返回写入文件数据块的时间,即文件内容更改的时间。
int filemtime ( string $filename )
filename
:文件的路径。
// outputs e.g. somefile.txt was last modified: December 29 2002 22:16:23.
$filename = 'somefile.txt';
if (file_exists($filename)) {
echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
答案 6 :(得分:1)
您可以使用上次修改文件的日期/时间:
答案 7 :(得分:1)
我会查看filemtime()
或filectime()
个功能。这些将为您提供文件的修改和创建时间。