4

我创建了这段代码来获取文件最后一次被触摸的日期,然后以 AM/PM 格式显示给用户。

它似乎没有工作。我知道我很接近;我究竟做错了什么?

$filename = 'test.html';
if (file_exists($filename)) {
    $date = date(filemtime($filename));
    clearstatcache();
}
echo "- last updated: " . date('F d Y h:i A', strtotime($date));

输出:最后更新时间:1969 年 12 月 31 日 06:59 PM

4

2 回答 2

7

尝试这个:

if (file_exists($filename)) {
    $date = filemtime($filename);
    clearstatcache();
}
echo "- last updated: " . date('F d Y h:i A', $date);

在您的代码中,这一行:

$date = date(filemtime($filename));

不起作用,因为filemtime返回一个 UNIX 时间戳,然后您将其作为第一个参数传递给date(). 即使这确实有效,您也会将该日期转换回 UNIX 时间戳strtotime(),然后再次转换回日期字符串,这似乎有点低效。

还要考虑如果文件不存在会发生什么,是否会$date在您的代码中的其他地方设置?

于 2012-05-30T10:00:11.793 回答
0
$date = date(filemtime($filename));

那条线是错误的。第一个参数date()是一个格式字符串。用。。。来代替:

$date = filemtime($filename);

此外,您不需要strtotime()在时间戳上执行,只需按原样使用:

echo date('F d Y h:i A', $date);
于 2012-05-30T10:00:34.357 回答