You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP技术问题:为filemtime添加时区并获取当前文件修改时间

解决方案

核心思路

要实现带主文件修改时间的统一纽约时区页脚,需将页脚改为PHP文件以处理动态逻辑,通过$_SERVER['SCRIPT_FILENAME']获取主文件路径,结合时区设置生成正确时间。

步骤1:编写可动态获取时间的footer.php

<?php
// 强制设置纽约时区,需在时间处理前执行
date_default_timezone_set('America/NewYork');

// 获取当前访问的主文件路径(即引入此页脚的文件)
$mainScript = $_SERVER['SCRIPT_FILENAME'];

// 初始化时间显示内容
$lastModified = 'Unknown';

// 校验文件存在性,避免报错
if (file_exists($mainScript)) {
    // 获取主文件修改时间戳,转换为带时区的DateTime对象
    $modifyTime = new DateTime();
    $modifyTime->setTimestamp(filemtime($mainScript));
    // 自定义时间格式,可根据需求调整
    $lastModified = $modifyTime->format('F j, Y, g:i A');
}
?>

<!-- 页脚静态HTML结构 -->
<footer style="padding: 1rem; text-align: center; background: #f5f5f5;">
    <p>© 2024 你的站点名称 | 最后修改时间:<?php echo $lastModified; ?></p>
</footer>

步骤2:在主文件中引入页脚

在任意需要页脚的PHP主文件(如index.php、about.php)的底部添加:

<?php include 'footer.php'; ?>

关键问题排查

  1. 之前时间显示异常的原因:

    • 误用__FILE__或__DIR__,会获取footer.php自身的路径而非主文件,导致时间错误。
    • 时区设置未放在时间处理前,导致DateTime使用默认时区计算,出现偏差。
    • 未校验文件存在性,若主文件路径异常会引发无输出或错误。
  2. 时间格式自定义:
    可修改format()方法的参数,比如:

    • 'Y-m-d H:i:s' → 2024-10-05 15:45:30
    • 'l, F jS Y' → Saturday, October 5th 2024

内容的提问来源于stack exchange,提问作者Rachel Brinkley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:35:45