PHP ZipArchive:如何修复不准确的文件日期?

PHP ZipArchive: how to fix inaccurate file dates?

提问人:Denis 提问时间:7/22/2023 最后编辑:KIKO SoftwareDenis 更新时间:7/22/2023 访问量:34

问:

我有一个php(7.0.33)脚本,可以压缩整个Web目录,包括子文件夹和文件。 下载并提取这样的存档后,我注意到 zip 中的文件日期与服务器中的相应文件日期相比都偏移了 2 小时(1 秒),这恰好是我的时区的偏移量(UTC/GMT +2 小时)。

我需要日期准确。

所以它看起来像一个时区问题,但我看不出如何解决它。我读到ZipArchive不支持时区设置...?

所以我想我可以使用 ZipArchive: https://www.php.net/manual/en/ziparchive.setmtimeindex.php 中的 setMtimeIndex() 方法在压缩文件时设置正确的文件日期。 但服务器声明该方法未定义。 文档指定该方法从 Libzip ≥ 1.0.0 开始可用。 我的服务器有 Libzip 1.1.2,所以...?

有什么想法吗?谢谢!:)

php 日期时间 ziparchive

评论

2赞 Chris Haas 7/22/2023
它还说你需要,所以也许就是这样?PECL zip >= 1.16.0
1赞 apokryfos 7/22/2023
手册页指出 PHP >= 8.0.0,这也可能与操作系统有关。例如,Windows 和 Linux 有不同的时间偏移方式
1赞 hakre 7/22/2023
“我需要日期准确。”那会是没有额外的秒,还是你的意思是两个小时的差异?请注意,Zip 格式的时间信息没有时区。还有带有时间戳的 Phar::ZIP,如果限制使您保持在 7.0.33 上,并且您无法更新所需功能的 zip 扩展名,Debian 有一个 PHP 包,它可以为您提供以下功能:packages.debian.org/bookworm/php-pclzip(但我不能说它支持哪些 PHP 版本,可能使用较旧的 Debian 版本)。

答: 暂无答案