讲师中心 微信公众号
AI工具推荐 视频效率加速

PHP怎样读取文件创建时间_PHP获取文件各种属性信息操作【方法】

冬萱同学_5869

冬萱同学_5869

发布时间:2026-02-15 14:59:34

|

742人浏览过

|

来源于php中文网

原创

PHP获取文件创建时间需区分系统:Windows下filectime()或SplFileInfo::getCTime()返回创建时间,Linux下为inode更改时间;还可通过PowerShell(仅Windows)或stat()函数获取,DateTime类可封装格式化逻辑。

php怎样读取文件创建时间_php获取文件各种属性信息操作【方法】

如果您需要在PHP中获取文件的创建时间及其他属性信息,则需注意不同操作系统对文件时间戳的支持差异。以下是实现该目标的多种方法:

一、使用filectime()函数获取文件创建时间

filectime()函数返回文件的inode更改时间,在Windows系统中等同于文件创建时间;在Linux/Unix系统中则表示最后一次修改inode(如权限、所有者)的时间,而非严格意义上的创建时间。

1、调用filectime()传入文件路径,返回Unix时间戳。

2、使用date()函数将时间戳格式化为可读字符串,例如date('Y-m-d H:i:s', filectime($filepath))。

立即学习“PHP免费学习笔记(深入)”;

3、检查返回值是否为false,若为false说明文件不存在或无访问权限,此时应配合is_file()和is_readable()进行前置判断。

二、使用SplFileInfo类统一获取文件元数据

SplFileInfo提供面向对象方式访问文件属性,其getCTime()方法行为与filectime()一致,但支持链式调用与异常感知,便于集成到类结构中。

1、实例化SplFileInfo对象:$file = new SplFileInfo($filepath)。

2、调用$file->getCTime()获取创建时间戳。

3、调用$file->getMTime()获取最后修改时间,$file->getATime()获取最后访问时间,三者在Windows下含义明确,在Linux下需注意getCTime()不反映真实创建时间。

三、通过exec()调用系统命令获取NTFS创建时间(仅限Windows)

在Windows环境下,PowerShell命令Get-ItemProperty可精确读取NTFS卷上的CreationTime属性,绕过PHP内置函数的限制。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

1、构造PowerShell命令:'powershell -Command "(Get-ItemProperty \''.escapeshellarg($filepath).'\').CreationTime.ToString(\'yyyy-MM-dd HH:mm:ss\")"'。

2、使用exec()执行命令并捕获输出,注意过滤回车换行符。

3、验证输出是否为空或含错误信息,必须确保Web服务器进程具有执行PowerShell的权限且禁用安全策略限制。

四、使用stat()函数获取完整文件状态数组

stat()返回包含文件大小、权限、所有者及多个时间戳的关联数组,其中ctime对应inode更改时间,windows下即创建时间,同时可获取dev、ino、mode等底层信息。

1、调用$stats = stat($filepath),检查返回值是否为false。

2、从$stats['ctime']提取创建时间戳,$stats['mtime']提取修改时间,$stats['atime']提取访问时间。

3、使用$stats['size']获取字节大小,$stats['mode']获取权限掩码,注意mode值需用decoct()或sprintf('%04o', $stats['mode'] & 0777)转换为八进制显示。

五、使用DateTime类封装时间戳处理逻辑

为提升可读性与复用性,可将时间戳转换封装为DateTime实例,支持时区设置与格式链式输出。

1、创建DateTime对象:$dt = DateTime::createFromFormat('U', filectime($filepath))。

2、设置时区:$dt->setTimezone(new DateTimeZone('Asia/Shanghai'))。

3、格式化输出:$dt->format('Y年m月d日 H:i:s'),若filectime()返回0或负值,createFromFormat会返回false,须提前校验。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

相关专题

更多
go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

7295

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

362

2025.11.27

C++ 面向对象编程与设计模式实践
C++ 面向对象编程与设计模式实践

本专题整合了 C++ 面向对象编程的核心机制,涵盖类的定义与访问控制、构造函数与析构函数、拷贝语义与移动语义、继承与虚函数多态、抽象类与接口、运算符重载、友元函数等关键知识点,同时结合单例模式、工厂模式、观察者模式、策略模式等常用设计模式的 C++ 实现,帮助开发者写出结构清晰、易于维护的面向对象代码。

384

2026.04.09

Java 面向对象与核心编程机制
Java 面向对象与核心编程机制

系统讲解 Java 面向对象编程的核心知识体系,涵盖类的定义与封装、构造方法与 this/super 关键字、继承与方法重写、多态与向上向下转型、抽象类与接口的区别与设计原则、异常处理机制(try-catch-finally / 自定义异常)、泛型的类型参数与通配符、集合框架(List/Set/Map)的使用与遍历方式,帮助开发者全面掌握 Java 程序设计的核心机制与面向对象思维。

243

2026.04.17

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1809

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1211

2024.06.27

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1858

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2984

2023.09.04

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn